import 'reflect-metadata';
import { Constructor } from './injection';
export declare const HANDLER = "HANDLER";
export declare const ENDPOINT_METADATA_KEY: symbol;
/**
 * Handler class decorator will register the endpoints declared in the provider
 * to KoaRouter.
 */
export declare function Handler(options?: {
    tags?: string[];
    meta?: object;
}): (constructor: Constructor) => void;
export interface EndpointOptions {
    method?: string | string[];
    path: string;
    meta?: object;
}
export interface EndpointMetadata extends EndpointOptions {
    name: string;
    handler: string;
}
export declare function Endpoint(options: EndpointOptions): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
export interface Handler extends Constructor {
    $getEndpoints(): EndpointMetadata[];
}
