import { IAuthenticate } from "../security";
import { IAuthorize } from "../security";
import { IExceptionHandler } from "../exception-handler";
import { IAuthHandler } from "../security";
import { IHttpResponseHandler } from "../http-handler";
import { IModelValidation } from "../validation";
import { IFilter } from "../filter";
import { IHttpRequestHandler } from "../http-handler";
import { IRoute } from "../../common";
/**
 * RestApiConfiguration class provides property and methods to configure Rest api
 */
export declare class RestApiConfiguration {
    private _authenticationFilter;
    private _authorizeFilter;
    private _exceptionHandler;
    private _authHandler;
    private _modelValidationHandler;
    private _httpResponseHandler;
    private _filters;
    private _httpRrequestHandler;
    private _routes;
    /**
     * get AuthenticationFilter
     */
    /**
     * set AuthenticationFilter
     * @param filter - class that implemented interface IAuthenticate
     */
    AuthenticationFilter: IAuthenticate;
    /**
     * get AuthorizeFilter
     */
    /**
     * set AuthorizeFilter
     * @param filter - class that implemented interface IAuthorize
     */
    AuthorizeFilter: IAuthorize;
    /**
     * get ExceptionHandler
     */
    /**
     * set ExceptionHandler
     * @param handler - class that implemented interface IExceptionHandler
     */
    ExceptionHandler: IExceptionHandler;
    /**
     * get AuthHandler
     */
    /**
     * set IAuthHandler
     */
    AuthHandler: IAuthHandler;
    /**
     * get ModelValidationHandler
     */
    /**
     * set ModelValidationHandler
     * @param handler - class that implemented interface IExceptionHandler
     */
    ModelValidationHandler: IModelValidation;
    /**
     * get HttpResponseHandler
     */
    /**
     * set HttpResponseHandler
     * @param handler - class that implemented interface IHttpResponseHandler
     */
    HttpResponseHandler: IHttpResponseHandler;
    /**
     * get registered filters
     */
    readonly Filters: IFilter[];
    /**
     * register global filters
     * @param filter - class that implemented interface IFilter
     */
    addFilter(filter: IFilter): void;
    /**
     * get HttpRequestHandler
     */
    /**
     * set HttpRequestHandler
     * @param httpRequestHandler - class that implemented interface IHttpRequestHandler
     */
    HttpRequestHandler: IHttpRequestHandler;
    /**
     * get registered api routes
     */
    readonly routes: IRoute[];
    /**
     * method to add api routes
     * @param routes Route Object array
     */
    addRoutes(routes: IRoute[]): void;
}
