///
import HTTP from 'http';
import Node from './src/type/node';
import HttpError from './src/http/error';
import HeaderMap from './src/http/type/header-map';
import Repository from './src/repository';
import HttpHeader from './src/http/enum/header';
import StatusCode from './src/http/enum/status-code';
import ContentType from './src/http/enum/content-type';
import UrlParameters from './src/http/type/url-parameters';
declare type AllowedOutputs = string | Buffer | object;
declare abstract class Endpoint {
private request;
private response;
private url_parameters;
private query_parameters;
private repository;
private status_code;
private response_headers;
private request_body;
private account;
constructor(request: HTTP.IncomingMessage, response: HTTP.ServerResponse, url_parameters: UrlParameters, repository: Repository);
serve(): void;
protected getRequest(): HTTP.IncomingMessage;
protected getResponse(): HTTP.ServerResponse;
protected setHeaderValue(header: HttpHeader, value: string): void;
protected getResponseHeaders(): HeaderMap;
protected getUrlParameter(parameter: string): string;
protected getQueryParameter(parameter: string): any;
protected setStatusCode(status_code: StatusCode): void;
protected getRepository(): Repository;
protected getRequestBody(): Input;
protected getAccount(): Node;
protected redirectToUrl(url: string): void;
private serveInternal;
private parseBody;
private loadAccount;
private hasUnparsableMethod;
private getStatusCode;
private handleResult;
private sendString;
private sendData;
private handleError;
private logCompletion;
private getRequestUrl;
private getRequestContentType;
private getUrlParameters;
private getQueryParameters;
private parseQueryParameters;
private getBodyParser;
protected abstract process(): Promise