/** * @module Utils */ import { Client } from "./client"; import { Header } from "./agent"; import { Authenticable, Paginateable, AdminAuthenticable, Taggable, HttpOptions, Filterable, QueryValue } from "./types"; export interface OptionalStringMap { [key: string]: QueryValue; } import { StringMap } from "./agent"; /** * toQuery * * Shallow copies object while omitting undefined attributes */ export declare const toStringMap: (optional?: OptionalStringMap | undefined) => StringMap; interface OptionalTimeout { timeout?: number; } /** * toTimeout * * Returns timeout value from request object. Delegates to default client * timeout if not specified */ export declare const toTimeout: ({ timeout }: OptionalTimeout, client: Client) => number; interface OptionalHeader { header?: OptionalStringMap; } /** * toHeader * * Extracts HTTP Header object from request and client default headers * * Precendence is given to request specific headers */ export declare const toHeader: ({ header }: OptionalHeader, client: Client) => Header; declare type AuthenticationOptions = Partial; /** * toAuthHeader * * Extracts credentials into authorization header format */ export declare const toAuthHeader: (client: Client, options: AuthenticationOptions) => string; interface AppendAuthorizationOptions { options: AuthenticationOptions; client: Client; header: StringMap; } interface AppendAuthorization { (options: AppendAuthorizationOptions): StringMap; } /** * appendAuthorization * * Mutates a headers object to include Authorization header. Will insert if found: * - api_key * - licensee * - user_token */ export declare const appendAuthorization: AppendAuthorization; interface AppendIpOptions { header: StringMap; options: HttpOptions; } export declare const appendIp: ({ header, options }: AppendIpOptions) => StringMap; interface AppendFilterOptions { query: StringMap; options: Filterable; } export declare const appendFilter: ({ query, options, }: AppendFilterOptions) => StringMap; interface AppendTagsOptions { client: Client; query: StringMap; options: Taggable; } export declare const appendTags: ({ client, query, options, }: AppendTagsOptions) => StringMap; interface AppendPageOptions { query: StringMap; options: Paginateable; } export declare const appendPage: ({ query, options, }: AppendPageOptions) => StringMap; export {};