import * as status from './status'; import { IncommingHeaders } from './header'; import { RequestInfo } from './request'; /** * Response respresents the response from an HTTP requrest. * * @param The body part of the response. */ export interface Response { /** * code code of a Response. */ code: status.Code; /** * body of the Response. */ body: B; /** * headers received with the response. */ headers: IncommingHeaders; /** * request holds info about the Request used to receive the Response * except for the body. */ request: RequestInfo; } /** * GenericResponse response refers to response codes we don't have * an explicit type for. */ export declare class GenericResponse implements Response { code: number; body: B; headers: IncommingHeaders; request: RequestInfo; constructor(code: number, body: B, headers: IncommingHeaders, request: RequestInfo); } /** * Success * * See (here)[http://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml]. */ export declare class Success extends GenericResponse { } /** * Ok response. */ export declare class Ok extends Success { body: B; headers: IncommingHeaders; request: RequestInfo; constructor(body: B, headers: IncommingHeaders, request: RequestInfo); } /** * Accepted response. */ export declare class Accepted extends Success { body: B; headers: IncommingHeaders; request: RequestInfo; constructor(body: B, headers: IncommingHeaders, request: RequestInfo); } /** * NoContent response. * * NOTE: In practice, the body here should always be undefined. */ export declare class NoContent extends Success { body: B; headers: IncommingHeaders; request: RequestInfo; constructor(body: B, headers: IncommingHeaders, request: RequestInfo); } /** * Created response. */ export declare class Created extends Success { body: B; headers: IncommingHeaders; request: RequestInfo; constructor(body: B, headers: IncommingHeaders, request: RequestInfo); } /** * ClientError * See (here)[http://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml]. */ export declare class ClientError extends GenericResponse { } /** * BadRequest response. */ export declare class BadRequest extends ClientError { body: B; headers: IncommingHeaders; request: RequestInfo; constructor(body: B, headers: IncommingHeaders, request: RequestInfo); } /** * Unauthorized response. */ export declare class Unauthorized extends ClientError { body: B; headers: IncommingHeaders; request: RequestInfo; constructor(body: B, headers: IncommingHeaders, request: RequestInfo); } /** * Forbidden response. */ export declare class Forbidden extends ClientError { body: B; headers: IncommingHeaders; request: RequestInfo; constructor(body: B, headers: IncommingHeaders, request: RequestInfo); } /** * NotFound response. */ export declare class NotFound extends ClientError { body: B; headers: IncommingHeaders; request: RequestInfo; constructor(body: B, headers: IncommingHeaders, request: RequestInfo); } /** * Conflict response. */ export declare class Conflict extends ClientError { body: B; headers: IncommingHeaders; request: RequestInfo; constructor(body: B, headers: IncommingHeaders, request: RequestInfo); } /** * ServerError */ export declare class ServerError extends GenericResponse { } /** * InternalServerError response. */ export declare class InternalServerError extends ServerError { body: B; headers: IncommingHeaders; request: RequestInfo; status: number; constructor(body: B, headers: IncommingHeaders, request: RequestInfo); } /** * createResponse creates a new typed Response or a GenericResponse if * unsupported. */ export declare const createResponse: (code: status.Code, body: B, headers: IncommingHeaders, request: RequestInfo) => Response;