import cors from 'cors';
import { Express, RequestHandler } from 'express';
import Redis from 'ioredis';
import { ErrorHandlerConfig } from '../error';
export interface ApiOptions {
    handlers: {
        path: string;
        handler: RequestHandler;
    }[];
    redis: Redis;
    corsOptions: cors.CorsOptions;
    extraMiddlewares?: RequestHandler[];
    apiRateLimit?: number;
    trustProxy?: boolean;
    morganFormat?: string;
    errorHandlerConfig?: ErrorHandlerConfig;
}
export declare class Api {
    private app;
    private redis;
    private readonly trustProxy;
    private readonly morganFormat;
    private readonly errorHandlerConfig;
    constructor(options: ApiOptions);
    private configureApp;
    private applyMiddlewares;
    private applyHandlers;
    private applyErrorHandlers;
    getApp(): Express;
}
