/// 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; protected abstract getResponseContentType(): ContentType; protected abstract serializeError(error: HttpError): Output; } export default Endpoint;