162 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			162 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
/**
 | 
						|
 *
 | 
						|
 * A module containing support for creating http connections and making requests on them.
 | 
						|
 *
 | 
						|
 * @packageDocumentation
 | 
						|
 * @module http
 | 
						|
 */
 | 
						|
/**
 | 
						|
 * HTTP protocol version
 | 
						|
 *
 | 
						|
 * @category HTTP
 | 
						|
 */
 | 
						|
export declare enum HttpVersion {
 | 
						|
    Unknown = 0,
 | 
						|
    /** HTTP/1.0 */
 | 
						|
    Http1_0 = 1,
 | 
						|
    /** HTTP/1.1 */
 | 
						|
    Http1_1 = 2,
 | 
						|
    /** HTTP/2 */
 | 
						|
    Http2 = 3
 | 
						|
}
 | 
						|
/**
 | 
						|
 * Headers are exposed as 2 element arrays: [name, value]
 | 
						|
 *
 | 
						|
 * @category HTTP
 | 
						|
 */
 | 
						|
export type HttpHeader = [string, string];
 | 
						|
/**
 | 
						|
 * Common interface for a set of HTTP headers.
 | 
						|
 *
 | 
						|
 * @category HTTP
 | 
						|
 */
 | 
						|
export interface HttpHeaders {
 | 
						|
    readonly length: number;
 | 
						|
    /**
 | 
						|
     * Add a name/value pair
 | 
						|
     * @param name - The header name
 | 
						|
     * @param value - The header value
 | 
						|
    */
 | 
						|
    add(name: string, value: string): void;
 | 
						|
    /**
 | 
						|
     * Set a name/value pair, replacing any existing values for the name
 | 
						|
     * @param name - The header name
 | 
						|
     * @param value - The header value
 | 
						|
    */
 | 
						|
    set(name: string, value: string): void;
 | 
						|
    /**
 | 
						|
     * Get the list of values for the given name
 | 
						|
     * @param name - The header name to look for
 | 
						|
     * @return List of values, or empty list if none exist
 | 
						|
     */
 | 
						|
    get_values(name: string): string[];
 | 
						|
    /**
 | 
						|
     * Gets the first value for the given name, ignoring any additional values
 | 
						|
     * @param name - The header name to look for
 | 
						|
     * @param default_value - Value returned if no values are found for the given name
 | 
						|
     * @return The first header value, or default if no values exist
 | 
						|
     */
 | 
						|
    get(name: string, default_value?: string): string;
 | 
						|
    /**
 | 
						|
     * Removes all values for the given name
 | 
						|
     * @param name - The header to remove all values for
 | 
						|
     */
 | 
						|
    remove(name: string): void;
 | 
						|
    /**
 | 
						|
     * Removes a specific name/value pair
 | 
						|
     * @param name - The header name to remove
 | 
						|
     * @param value - The header value to remove
 | 
						|
     */
 | 
						|
    remove_value(name: string, value: string): void;
 | 
						|
    /** Clears the entire header set */
 | 
						|
    clear(): void;
 | 
						|
    /**
 | 
						|
     * Iterator. Allows for:
 | 
						|
     * let headers = new HttpHeaders();
 | 
						|
     * ...
 | 
						|
     * for (const header of headers) { }
 | 
						|
    */
 | 
						|
    [Symbol.iterator](): Iterator<HttpHeader>;
 | 
						|
    /** @hidden */
 | 
						|
    _flatten(): HttpHeader[];
 | 
						|
}
 | 
						|
/**
 | 
						|
 * Proxy authentication types
 | 
						|
 *
 | 
						|
 * @category HTTP
 | 
						|
 */
 | 
						|
export declare enum HttpProxyAuthenticationType {
 | 
						|
    /**
 | 
						|
     * No to-proxy authentication logic
 | 
						|
     */
 | 
						|
    None = 0,
 | 
						|
    /**
 | 
						|
     * Use basic authentication (user/pass).  Supply these values in {@link HttpProxyOptions}
 | 
						|
     */
 | 
						|
    Basic = 1
 | 
						|
}
 | 
						|
/**
 | 
						|
 * Options used when connecting to an HTTP endpoint via a proxy
 | 
						|
 *
 | 
						|
 * @category HTTP
 | 
						|
 */
 | 
						|
export declare class CommonHttpProxyOptions {
 | 
						|
    host_name: string;
 | 
						|
    port: number;
 | 
						|
    auth_method: HttpProxyAuthenticationType;
 | 
						|
    auth_username?: string | undefined;
 | 
						|
    auth_password?: string | undefined;
 | 
						|
    /**
 | 
						|
     *
 | 
						|
     * @param host_name endpoint of the proxy to use
 | 
						|
     * @param port port of proxy to use
 | 
						|
     * @param auth_method type of authentication to use with the proxy
 | 
						|
     * @param auth_username (basic authentication only) proxy username
 | 
						|
     * @param auth_password (basic authentication only) password associated with the username
 | 
						|
     */
 | 
						|
    constructor(host_name: string, port: number, auth_method?: HttpProxyAuthenticationType, auth_username?: string | undefined, auth_password?: string | undefined);
 | 
						|
}
 | 
						|
/**
 | 
						|
 * Listener signature for event emitted from an {@link HttpClientConnection} when the connection reaches the
 | 
						|
 * connected state
 | 
						|
 *
 | 
						|
 * @category HTTP
 | 
						|
 */
 | 
						|
export type HttpClientConnectionConnected = () => void;
 | 
						|
/**
 | 
						|
 * Listener signature for event emitted from an {@link HttpClientConnection} when an error occurs
 | 
						|
 *
 | 
						|
 * @param error - A CrtError containing the error that occurred
 | 
						|
 *
 | 
						|
 * @category HTTP
 | 
						|
 */
 | 
						|
export type HttpClientConnectionError = (error: Error) => void;
 | 
						|
/**
 | 
						|
 * Listener signature for event emitted from an {@link HttpClientConnection} when the connection has been closed
 | 
						|
 *
 | 
						|
 * @category HTTP
 | 
						|
 */
 | 
						|
export type HttpClientConnectionClosed = () => void;
 | 
						|
/**
 | 
						|
 * Listener signature for event emitted from an {@link HttpClientStream} when http response data is available
 | 
						|
 *
 | 
						|
 * @param body_data - The chunk of body data
 | 
						|
 *
 | 
						|
 * @category HTTP
 | 
						|
 */
 | 
						|
export type HttpStreamData = (body_data: ArrayBuffer) => void;
 | 
						|
/**
 | 
						|
 * Listener signature for event emitted from an {@link HttpClientStream} when an http stream error occurs
 | 
						|
 *
 | 
						|
 * @param error - A CrtError containing the error that occurred
 | 
						|
 *
 | 
						|
 * @category HTTP
 | 
						|
 */
 | 
						|
export type HttpStreamError = (error: Error) => void;
 | 
						|
/**
 | 
						|
 * Listener signature for event emitted from an {@link HttpClientStream} when the http stream has completed.
 | 
						|
 *
 | 
						|
 * @category HTTP
 | 
						|
 */
 | 
						|
export type HttpStreamComplete = () => void;
 |