import { Application, RequestHandler } from 'express';
import { ClientOpts, RedisClient } from 'redis';
import * as cors from 'cors';
import * as helmet from 'helmet';
import * as bodyParser from 'body-parser';
import * as RateLimit from 'express-rate-limit';
declare type HelmetOptions = Parameters<typeof helmet>[0];
export declare function setBasicSecurity(app: Application, route: string, options?: SecurityOptions): void;
export declare function setBodyParser(app: Application, route: string, options?: BodyParserOptions): void;
export declare function getRateLimiter(options?: RateLimiterOptions): RequestHandler;
export interface RateLimiterOptions extends RateLimit.Options {
    redis?: RedisOptions;
}
export interface SecurityOptions {
    cors?: cors.CorsOptions;
    helmet?: HelmetOptions;
}
export interface BodyParserOptions {
    json?: bodyParser.OptionsJson;
    raw?: bodyParser.Options;
    text?: bodyParser.OptionsText;
    urlEncoded?: bodyParser.OptionsUrlencoded;
}
export interface RedisOptions extends ClientOpts {
    client?: RedisClient;
}
export {};
