///
import HTTP from 'http';
import TypeNode from './type/type-node';
import HttpError from './http/error';
import HeaderMap from './http/type/header-map';
import Repository from './repository';
import HttpHeader from './http/enum/header';
import StatusCode from './http/enum/status-code';
import AccountNode from './type/node/account';
import ContentType from './http/enum/content-type';
import InstanceNode from './type/instance-node';
import UrlParameters from './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(): AccountNode;
protected redirectToUrl(url: string): void;
protected fetchType(type_id: string): Promise;
protected fetchInstance(type_id: string, id: string): Promise;
protected loadInstanceFromUrl(url: string): Promise;
protected loadTypeFromUrl(url: string): Promise;
private fetchNode;
private loadNodeFromUrl;
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