UNPKG

2.99 kBTypeScriptView Raw
1// Type definitions for negotiator 0.6
2// Project: https://github.com/jshttp/negotiator#readme
3// Definitions by: BendingBender <https://github.com/BendingBender>
4// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
5
6export = Negotiator;
7
8declare class Negotiator {
9 /**
10 * The negotiator constructor receives a request object
11 */
12 constructor(req: { headers: Negotiator.Headers });
13
14 /**
15 * Returns the most preferred media type from the client.
16 *
17 * @param [availableMediaTypes] When provided, returns the most preferred media type
18 * from a list of available media types.
19 */
20 mediaType(availableMediaTypes?: string[]): string | undefined;
21
22 /**
23 * Returns an array of preferred media types ordered by the client preference
24 *
25 * @param [availableMediaTypes] When provided, returns an array of preferred media
26 * types ordered by priority from a list of available media types.
27 */
28 mediaTypes(availableMediaTypes?: string[]): string[];
29
30 /**
31 * Returns the most preferred language from the client.
32 *
33 * @param [availableLanguages] When provided, returns the most preferred language
34 * from a list of available languages.
35 */
36 language(availableLanguages?: string[]): string | undefined;
37
38 /**
39 * Returns an array of preferred languages ordered by the client preference.
40 *
41 * @param [availableLanguages] When provided, returns an array of preferred languages
42 * ordered by priority from a list of available languages.
43 */
44 languages(availableLanguages?: string[]): string[];
45
46 /**
47 * Returns the most preferred charset from the client.
48 *
49 * @param [availableCharsets] When provided, returns the most preferred charset
50 * from a list of available charsets.
51 */
52 charset(availableCharsets?: string[]): string | undefined;
53
54 /**
55 * Returns an array of preferred charsets ordered by the client preference.
56 *
57 * @param [availableCharsets] When provided, returns an array of preferred charsets
58 * ordered by priority from a list of available charsets.
59 */
60 charsets(availableCharsets?: string[]): string[];
61
62 /**
63 * Returns the most preferred encoding from the client.
64 *
65 * @param [availableEncodings] When provided, returns the most preferred encoding
66 * from a list of available encodings.
67 */
68 encoding(availableEncodings?: string[]): string | undefined;
69
70 /**
71 * Returns an array of preferred encodings ordered by the client preference.
72 *
73 * @param [availableEncodings] When provided, returns an array of preferred encodings
74 * ordered by priority from a list of available encodings.
75 */
76 encodings(availableEncodings?: string[]): string[];
77}
78
79declare namespace Negotiator {
80 interface Headers {
81 [key: string]: string | string[] | undefined;
82 }
83}