import { HTTPServiceModel } from './model'; import { HTTPEndpoint } from './endpoint'; import { HTTPTransactable } from './params/transactable'; import { HTTPEndpointConfig, HTTPServiceConfig } from '../meta'; import { HTTPMiddleware } from '../middleware'; import Koa from 'koa'; export type HTTPService = any; export type HTTPServiceClass = new (...args: any[]) => HTTPService; export declare class HTTPServiceModels { static meta: { [key: number]: HTTPServiceModel; }; static reset(): void; static getMetaKey(type: HTTPServiceClass): number; static getParents(type: HTTPServiceClass): HTTPServiceClass[]; static get(type: HTTPServiceClass): HTTPServiceModel | null; private static registerType; static registerService(type: HTTPServiceClass, config: HTTPServiceConfig): void; static registerServiceMiddleware(type: HTTPServiceClass, middleware: (HTTPMiddleware | ((ctx: Koa.Context, next: any) => Promise))): void; static registerEndpoint(type: HTTPServiceClass, name: string, config?: HTTPEndpointConfig): HTTPEndpoint; static registerEndpointMiddleware(type: HTTPServiceClass, name: string, middleware: (HTTPMiddleware | ((ctx: Koa.Context, next: any) => Promise))): HTTPEndpoint; static registerEndpointParam(type: HTTPServiceClass, endpoint: string, name: string, index: number, handler: HTTPTransactable, paramName?: string): void; static getEndpoints(type: HTTPServiceClass): HTTPEndpoint[]; }