typescript-closure-tools
Version:
Command-line tools to convert closure-style JSDoc annotations to typescript, and to convert typescript sources to closure externs files
572 lines (497 loc) • 23.1 kB
TypeScript
/// <reference path="../../../globals.d.ts" />
/// <reference path="../structs/map.d.ts" />
declare module goog {
class Uri extends Uri__Class { }
/** Fake class which should be extended to avoid inheriting static properties */
class Uri__Class {
/**
* This class contains setters and getters for the parts of the URI.
* The <code>getXyz</code>/<code>setXyz</code> methods return the decoded part
* -- so<code>goog.Uri.parse('/foo%20bar').getPath()</code> will return the
* decoded path, <code>/foo bar</code>.
*
* The constructor accepts an optional unparsed, raw URI string. The parser
* is relaxed, so special characters that aren't escaped but don't cause
* ambiguities will not cause parse failures.
*
* All setters return <code>this</code> and so may be chained, a la
* <code>goog.Uri.parse('/foo').setFragment('part').toString()</code>.
*
* @param {*=} opt_uri Optional string URI to parse
* (use goog.Uri.create() to create a URI from parts), or if
* a goog.Uri is passed, a clone is created.
* @param {boolean=} opt_ignoreCase If true, #getParameterValue will ignore
* the case of the parameter name.
*
* @constructor
*/
constructor(opt_uri?: any, opt_ignoreCase?: boolean);
/**
* Resolves the given relative URI (a goog.Uri object), using the URI
* represented by this instance as the base URI.
*
* There are several kinds of relative URIs:<br>
* 1. foo - replaces the last part of the path, the whole query and fragment<br>
* 2. /foo - replaces the the path, the query and fragment<br>
* 3. //foo - replaces everything from the domain on. foo is a domain name<br>
* 4. ?foo - replace the query and fragment<br>
* 5. #foo - replace the fragment only
*
* Additionally, if relative URI has a non-empty path, all ".." and "."
* segments will be resolved, as described in RFC 3986.
*
* @param {goog.Uri} relativeUri The relative URI to resolve.
* @return {!goog.Uri} The resolved URI.
*/
resolve(relativeUri: goog.Uri): goog.Uri;
/**
* Clones the URI instance.
* @return {!goog.Uri} New instance of the URI object.
*/
clone(): goog.Uri;
/**
* @return {string} The encoded scheme/protocol for the URI.
*/
getScheme(): string;
/**
* Sets the scheme/protocol.
* @param {string} newScheme New scheme value.
* @param {boolean=} opt_decode Optional param for whether to decode new value.
* @return {!goog.Uri} Reference to this URI object.
*/
setScheme(newScheme: string, opt_decode?: boolean): goog.Uri;
/**
* @return {boolean} Whether the scheme has been set.
*/
hasScheme(): boolean;
/**
* @return {string} The decoded user info.
*/
getUserInfo(): string;
/**
* Sets the userInfo.
* @param {string} newUserInfo New userInfo value.
* @param {boolean=} opt_decode Optional param for whether to decode new value.
* @return {!goog.Uri} Reference to this URI object.
*/
setUserInfo(newUserInfo: string, opt_decode?: boolean): goog.Uri;
/**
* @return {boolean} Whether the user info has been set.
*/
hasUserInfo(): boolean;
/**
* @return {string} The decoded domain.
*/
getDomain(): string;
/**
* Sets the domain.
* @param {string} newDomain New domain value.
* @param {boolean=} opt_decode Optional param for whether to decode new value.
* @return {!goog.Uri} Reference to this URI object.
*/
setDomain(newDomain: string, opt_decode?: boolean): goog.Uri;
/**
* @return {boolean} Whether the domain has been set.
*/
hasDomain(): boolean;
/**
* @return {?number} The port number.
*/
getPort(): number;
/**
* Sets the port number.
* @param {*} newPort Port number. Will be explicitly casted to a number.
* @return {!goog.Uri} Reference to this URI object.
*/
setPort(newPort: any): goog.Uri;
/**
* @return {boolean} Whether the port has been set.
*/
hasPort(): boolean;
/**
* @return {string} The decoded path.
*/
getPath(): string;
/**
* Sets the path.
* @param {string} newPath New path value.
* @param {boolean=} opt_decode Optional param for whether to decode new value.
* @return {!goog.Uri} Reference to this URI object.
*/
setPath(newPath: string, opt_decode?: boolean): goog.Uri;
/**
* @return {boolean} Whether the path has been set.
*/
hasPath(): boolean;
/**
* @return {boolean} Whether the query string has been set.
*/
hasQuery(): boolean;
/**
* Sets the query data.
* @param {goog.Uri.QueryData|string|undefined} queryData QueryData object.
* @param {boolean=} opt_decode Optional param for whether to decode new value.
* Applies only if queryData is a string.
* @return {!goog.Uri} Reference to this URI object.
*/
setQueryData(queryData: goog.Uri.QueryData|string|any /*undefined*/, opt_decode?: boolean): goog.Uri;
/**
* Sets the URI query.
* @param {string} newQuery New query value.
* @param {boolean=} opt_decode Optional param for whether to decode new value.
* @return {!goog.Uri} Reference to this URI object.
*/
setQuery(newQuery: string, opt_decode?: boolean): goog.Uri;
/**
* @return {string} The encoded URI query, not including the ?.
*/
getEncodedQuery(): string;
/**
* @return {string} The decoded URI query, not including the ?.
*/
getDecodedQuery(): string;
/**
* Returns the query data.
* @return {!goog.Uri.QueryData} QueryData object.
*/
getQueryData(): goog.Uri.QueryData;
/**
* @return {string} The encoded URI query, not including the ?.
*
* Warning: This method, unlike other getter methods, returns encoded
* value, instead of decoded one.
*/
getQuery(): string;
/**
* Sets the value of the named query parameters, clearing previous values for
* that key.
*
* @param {string} key The parameter to set.
* @param {*} value The new value.
* @return {!goog.Uri} Reference to this URI object.
*/
setParameterValue(key: string, value: any): goog.Uri;
/**
* Sets the values of the named query parameters, clearing previous values for
* that key. Not new values will currently be moved to the end of the query
* string.
*
* So, <code>goog.Uri.parse('foo?a=b&c=d&e=f').setParameterValues('c', ['new'])
* </code> yields <tt>foo?a=b&e=f&c=new</tt>.</p>
*
* @param {string} key The parameter to set.
* @param {*} values The new values. If values is a single
* string then it will be treated as the sole value.
* @return {!goog.Uri} Reference to this URI object.
*/
setParameterValues(key: string, values: any): goog.Uri;
/**
* Returns the value<b>s</b> for a given cgi parameter as a list of decoded
* query parameter values.
* @param {string} name The parameter to get values for.
* @return {!Array} The values for a given cgi parameter as a list of
* decoded query parameter values.
*/
getParameterValues(name: string): any[];
/**
* Returns the first value for a given cgi parameter or undefined if the given
* parameter name does not appear in the query string.
* @param {string} paramName Unescaped parameter name.
* @return {string|undefined} The first value for a given cgi parameter or
* undefined if the given parameter name does not appear in the query
* string.
*/
getParameterValue(paramName: string): string|any /*undefined*/;
/**
* @return {string} The URI fragment, not including the #.
*/
getFragment(): string;
/**
* Sets the URI fragment.
* @param {string} newFragment New fragment value.
* @param {boolean=} opt_decode Optional param for whether to decode new value.
* @return {!goog.Uri} Reference to this URI object.
*/
setFragment(newFragment: string, opt_decode?: boolean): goog.Uri;
/**
* @return {boolean} Whether the URI has a fragment set.
*/
hasFragment(): boolean;
/**
* Returns true if this has the same domain as that of uri2.
* @param {goog.Uri} uri2 The URI object to compare to.
* @return {boolean} true if same domain; false otherwise.
*/
hasSameDomainAs(uri2: goog.Uri): boolean;
/**
* Adds a random parameter to the Uri.
* @return {!goog.Uri} Reference to this Uri object.
*/
makeUnique(): goog.Uri;
/**
* Removes the named query parameter.
*
* @param {string} key The parameter to remove.
* @return {!goog.Uri} Reference to this URI object.
*/
removeParameter(key: string): goog.Uri;
/**
* Sets whether Uri is read only. If this goog.Uri is read-only,
* enforceReadOnly_ will be called at the start of any function that may modify
* this Uri.
* @param {boolean} isReadOnly whether this goog.Uri should be read only.
* @return {!goog.Uri} Reference to this Uri object.
*/
setReadOnly(isReadOnly: boolean): goog.Uri;
/**
* @return {boolean} Whether the URI is read only.
*/
isReadOnly(): boolean;
/**
* Checks if this Uri has been marked as read only, and if so, throws an error.
* This should be called whenever any modifying function is called.
*/
enforceReadOnly(): void;
/**
* Sets whether to ignore case.
* NOTE: If there are already key/value pairs in the QueryData, and
* ignoreCase_ is set to false, the keys will all be lower-cased.
* @param {boolean} ignoreCase whether this goog.Uri should ignore case.
* @return {!goog.Uri} Reference to this Uri object.
*/
setIgnoreCase(ignoreCase: boolean): goog.Uri;
/**
* @return {boolean} Whether to ignore case.
*/
getIgnoreCase(): boolean;
}
}
declare module goog.Uri {
class QueryData extends QueryData__Class { }
/** Fake class which should be extended to avoid inheriting static properties */
class QueryData__Class {
/**
* Class used to represent URI query parameters. It is essentially a hash of
* name-value pairs, though a name can be present more than once.
*
* Has the same interface as the collections in goog.structs.
*
* @param {?string=} opt_query Optional encoded query string to parse into
* the object.
* @param {goog.Uri=} opt_uri Optional uri object that should have its
* cache invalidated when this object updates. Deprecated -- this
* is no longer required.
* @param {boolean=} opt_ignoreCase If true, ignore the case of the parameter
* name in #get.
* @constructor
* @final
*/
constructor(opt_query?: string, opt_uri?: goog.Uri, opt_ignoreCase?: boolean);
/**
* @return {?number} The number of parameters.
*/
getCount(): number;
/**
* Adds a key value pair.
* @param {string} key Name.
* @param {*} value Value.
* @return {!goog.Uri.QueryData} Instance of this object.
*/
add(key: string, value: any): goog.Uri.QueryData;
/**
* Removes all the params with the given key.
* @param {string} key Name.
* @return {boolean} Whether any parameter was removed.
*/
remove(key: string): boolean;
/**
* Clears the parameters.
*/
clear(): void;
/**
* @return {boolean} Whether we have any parameters.
*/
isEmpty(): boolean;
/**
* Whether there is a parameter with the given name
* @param {string} key The parameter name to check for.
* @return {boolean} Whether there is a parameter with the given name.
*/
containsKey(key: string): boolean;
/**
* Whether there is a parameter with the given value.
* @param {*} value The value to check for.
* @return {boolean} Whether there is a parameter with the given value.
*/
containsValue(value: any): boolean;
/**
* Returns all the keys of the parameters. If a key is used multiple times
* it will be included multiple times in the returned array
* @return {!Array.<string>} All the keys of the parameters.
*/
getKeys(): string[];
/**
* Returns all the values of the parameters with the given name. If the query
* data has no such key this will return an empty array. If no key is given
* all values wil be returned.
* @param {string=} opt_key The name of the parameter to get the values for.
* @return {!Array} All the values of the parameters with the given name.
*/
getValues(opt_key?: string): any[];
/**
* Sets a key value pair and removes all other keys with the same value.
*
* @param {string} key Name.
* @param {*} value Value.
* @return {!goog.Uri.QueryData} Instance of this object.
*/
set(key: string, value: any): goog.Uri.QueryData;
/**
* Returns the first value associated with the key. If the query data has no
* such key this will return undefined or the optional default.
* @param {string} key The name of the parameter to get the value for.
* @param {*=} opt_default The default value to return if the query data
* has no such key.
* @return {*} The first string value associated with the key, or opt_default
* if there's no value.
*/
get(key: string, opt_default?: any): any;
/**
* Sets the values for a key. If the key already exists, this will
* override all of the existing values that correspond to the key.
* @param {string} key The key to set values for.
* @param {Array} values The values to set.
*/
setValues(key: string, values: any[]): void;
/**
* @return {string} Decoded query string.
*/
toDecodedString(): string;
/**
* Removes all keys that are not in the provided list. (Modifies this object.)
* @param {Array.<string>} keys The desired keys.
* @return {!goog.Uri.QueryData} a reference to this object.
*/
filterKeys(keys: string[]): goog.Uri.QueryData;
/**
* Clone the query data instance.
* @return {!goog.Uri.QueryData} New instance of the QueryData object.
*/
clone(): goog.Uri.QueryData;
/**
* Ignore case in parameter names.
* NOTE: If there are already key/value pairs in the QueryData, and
* ignoreCase_ is set to false, the keys will all be lower-cased.
* @param {boolean} ignoreCase whether this goog.Uri should ignore case.
*/
setIgnoreCase(ignoreCase: boolean): void;
/**
* Extends a query data object with another query data or map like object. This
* operates 'in-place', it does not create a new QueryData object.
*
* @param {...(goog.Uri.QueryData|goog.structs.Map|Object)} var_args The object
* from which key value pairs will be copied.
*/
extend(...var_args: (goog.Uri.QueryData|goog.structs.Map<any, any>|Object)[]): void;
}
/**
* If true, we preserve the type of query parameters set programmatically.
*
* This means that if you set a parameter to a boolean, and then call
* getParameterValue, you will get a boolean back.
*
* If false, we will coerce parameters to strings, just as they would
* appear in real URIs.
*
* TODO(nicksantos): Remove this once people have time to fix all tests.
*
* @type {boolean}
*/
var preserveParameterTypesCompatibilityFlag: boolean;
/**
* Parameter name added to stop caching.
* @type {string}
*/
var RANDOM_PARAM: string;
/**
* Creates a uri from the string form. Basically an alias of new goog.Uri().
* If a Uri object is passed to parse then it will return a clone of the object.
*
* @param {*} uri Raw URI string or instance of Uri
* object.
* @param {boolean=} opt_ignoreCase Whether to ignore the case of parameter
* names in #getParameterValue.
* @return {!goog.Uri} The new URI object.
*/
function parse(uri: any, opt_ignoreCase?: boolean): goog.Uri;
/**
* Creates a new goog.Uri object from unencoded parts.
*
* @param {?string=} opt_scheme Scheme/protocol or full URI to parse.
* @param {?string=} opt_userInfo username:password.
* @param {?string=} opt_domain www.google.com.
* @param {?number=} opt_port 9830.
* @param {?string=} opt_path /some/path/to/a/file.html.
* @param {string|goog.Uri.QueryData=} opt_query a=1&b=2.
* @param {?string=} opt_fragment The fragment without the #.
* @param {boolean=} opt_ignoreCase Whether to ignore parameter name case in
* #getParameterValue.
*
* @return {!goog.Uri} The new URI object.
*/
function create(opt_scheme?: string, opt_userInfo?: string, opt_domain?: string, opt_port?: number, opt_path?: string, opt_query?: string|goog.Uri.QueryData, opt_fragment?: string, opt_ignoreCase?: boolean): goog.Uri;
/**
* Resolves a relative Uri against a base Uri, accepting both strings and
* Uri objects.
*
* @param {*} base Base Uri.
* @param {*} rel Relative Uri.
* @return {!goog.Uri} Resolved uri.
*/
function resolve(base: any, rel: any): goog.Uri;
/**
* Removes dot segments in given path component, as described in
* RFC 3986, section 5.2.4.
*
* @param {string} path A non-empty path component.
* @return {string} Path component with removed dot segments.
*/
function removeDotSegments(path: string): string;
/**
* Checks whether two URIs have the same domain.
* @param {string} uri1String First URI string.
* @param {string} uri2String Second URI string.
* @return {boolean} true if the two URIs have the same domain; false otherwise.
*/
function haveSameDomain(uri1String: string, uri2String: string): boolean;
}
declare module goog.Uri.QueryData {
/**
* Creates a new query data instance from a map of names and values.
*
* @param {!goog.structs.Map|!Object} map Map of string parameter
* names to parameter value. If parameter value is an array, it is
* treated as if the key maps to each individual value in the
* array.
* @param {goog.Uri=} opt_uri URI object that should have its cache
* invalidated when this object updates.
* @param {boolean=} opt_ignoreCase If true, ignore the case of the parameter
* name in #get.
* @return {!goog.Uri.QueryData} The populated query data instance.
*/
function createFromMap(map: goog.structs.Map<any, any>|Object, opt_uri?: goog.Uri, opt_ignoreCase?: boolean): goog.Uri.QueryData;
/**
* Creates a new query data instance from parallel arrays of parameter names
* and values. Allows for duplicate parameter names. Throws an error if the
* lengths of the arrays differ.
*
* @param {Array.<string>} keys Parameter names.
* @param {Array} values Parameter values.
* @param {goog.Uri=} opt_uri URI object that should have its cache
* invalidated when this object updates.
* @param {boolean=} opt_ignoreCase If true, ignore the case of the parameter
* name in #get.
* @return {!goog.Uri.QueryData} The populated query data instance.
*/
function createFromKeysValues(keys: string[], values: any[], opt_uri?: goog.Uri, opt_ignoreCase?: boolean): goog.Uri.QueryData;
}