| /** |
| * The `querystring` module provides utilities for parsing and formatting URL |
| * query strings. It can be accessed using: |
| * |
| * ```js |
| * const querystring = require('querystring'); |
| * ``` |
| * |
| * The `querystring` API is considered Legacy. While it is still maintained, |
| * new code should use the `URLSearchParams` API instead. |
| * @deprecated Legacy |
| * @see [source](https://github.com/nodejs/node/blob/v17.0.0/lib/querystring.js) |
| */ |
| declare module 'querystring' { |
| interface StringifyOptions { |
| encodeURIComponent?: ((str: string) => string) | undefined; |
| } |
| interface ParseOptions { |
| maxKeys?: number | undefined; |
| decodeURIComponent?: ((str: string) => string) | undefined; |
| } |
| interface ParsedUrlQuery extends NodeJS.Dict<string | string[]> {} |
| interface ParsedUrlQueryInput extends NodeJS.Dict<string | number | boolean | ReadonlyArray<string> | ReadonlyArray<number> | ReadonlyArray<boolean> | null> {} |
| /** |
| * The `querystring.stringify()` method produces a URL query string from a |
| * given `obj` by iterating through the object's "own properties". |
| * |
| * It serializes the following types of values passed in `obj`:[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) | |
| * [number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type) | |
| * [bigint](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) | |
| * [boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) | |
| * [string\[\]](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) | |
| * [number\[\]](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type) | |
| * [bigint\[\]](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) | |
| * [boolean\[\]](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) The numeric values must be finite. Any other input values will be coerced to |
| * empty strings. |
| * |
| * ```js |
| * querystring.stringify({ foo: 'bar', baz: ['qux', 'quux'], corge: '' }); |
| * // Returns 'foo=bar&baz=qux&baz=quux&corge=' |
| * |
| * querystring.stringify({ foo: 'bar', baz: 'qux' }, ';', ':'); |
| * // Returns 'foo:bar;baz:qux' |
| * ``` |
| * |
| * By default, characters requiring percent-encoding within the query string will |
| * be encoded as UTF-8\. If an alternative encoding is required, then an alternative`encodeURIComponent` option will need to be specified: |
| * |
| * ```js |
| * // Assuming gbkEncodeURIComponent function already exists, |
| * |
| * querystring.stringify({ w: '中文', foo: 'bar' }, null, null, |
| * { encodeURIComponent: gbkEncodeURIComponent }); |
| * ``` |
| * @since v0.1.25 |
| * @param obj The object to serialize into a URL query string |
| * @param [sep='&'] The substring used to delimit key and value pairs in the query string. |
| * @param [eq='='] . The substring used to delimit keys and values in the query string. |
| */ |
| function stringify(obj?: ParsedUrlQueryInput, sep?: string, eq?: string, options?: StringifyOptions): string; |
| /** |
| * The `querystring.parse()` method parses a URL query string (`str`) into a |
| * collection of key and value pairs. |
| * |
| * For example, the query string `'foo=bar&abc=xyz&abc=123'` is parsed into: |
| * |
| * ```js |
| * { |
| * foo: 'bar', |
| * abc: ['xyz', '123'] |
| * } |
| * ``` |
| * |
| * The object returned by the `querystring.parse()` method _does not_prototypically inherit from the JavaScript `Object`. This means that typical`Object` methods such as `obj.toString()`, |
| * `obj.hasOwnProperty()`, and others |
| * are not defined and _will not work_. |
| * |
| * By default, percent-encoded characters within the query string will be assumed |
| * to use UTF-8 encoding. If an alternative character encoding is used, then an |
| * alternative `decodeURIComponent` option will need to be specified: |
| * |
| * ```js |
| * // Assuming gbkDecodeURIComponent function already exists... |
| * |
| * querystring.parse('w=%D6%D0%CE%C4&foo=bar', null, null, |
| * { decodeURIComponent: gbkDecodeURIComponent }); |
| * ``` |
| * @since v0.1.25 |
| * @param str The URL query string to parse |
| * @param [sep='&'] The substring used to delimit key and value pairs in the query string. |
| * @param [eq='='] . The substring used to delimit keys and values in the query string. |
| */ |
| function parse(str: string, sep?: string, eq?: string, options?: ParseOptions): ParsedUrlQuery; |
| /** |
| * The querystring.encode() function is an alias for querystring.stringify(). |
| */ |
| const encode: typeof stringify; |
| /** |
| * The querystring.decode() function is an alias for querystring.parse(). |
| */ |
| const decode: typeof parse; |
| /** |
| * The `querystring.escape()` method performs URL percent-encoding on the given`str` in a manner that is optimized for the specific requirements of URL |
| * query strings. |
| * |
| * The `querystring.escape()` method is used by `querystring.stringify()` and is |
| * generally not expected to be used directly. It is exported primarily to allow |
| * application code to provide a replacement percent-encoding implementation if |
| * necessary by assigning `querystring.escape` to an alternative function. |
| * @since v0.1.25 |
| */ |
| function escape(str: string): string; |
| /** |
| * The `querystring.unescape()` method performs decoding of URL percent-encoded |
| * characters on the given `str`. |
| * |
| * The `querystring.unescape()` method is used by `querystring.parse()` and is |
| * generally not expected to be used directly. It is exported primarily to allow |
| * application code to provide a replacement decoding implementation if |
| * necessary by assigning `querystring.unescape` to an alternative function. |
| * |
| * By default, the `querystring.unescape()` method will attempt to use the |
| * JavaScript built-in `decodeURIComponent()` method to decode. If that fails, |
| * a safer equivalent that does not throw on malformed URLs will be used. |
| * @since v0.1.25 |
| */ |
| function unescape(str: string): string; |
| } |
| declare module 'node:querystring' { |
| export * from 'querystring'; |
| } |