import { RouteMapping } from './route-mapping';
import { ModelValidator } from './model-validator';
import { AuthorizerFunction } from './authorizer-function';
import { WebTokenManipulator } from '../auth/web-token-manipulator';
import { ErrorProcessorFunction } from './error-processor-function';
import { ApolloServer, CreateHandlerOptions } from 'apollo-server-lambda';
export interface RouterConfig {
    routes: RouteMapping[];
    authorizers: Map<string, AuthorizerFunction>;
    autoFixStillEncodedQueryParams: boolean;
    disableCORS: boolean;
    disableCompression: boolean;
    staticContentPaths: string[];
    defaultErrorMessage: string;
    defaultTimeoutMS: number;
    errorProcessor: ErrorProcessorFunction;
    corsAllowedOrigins: string;
    corsAllowedMethods: string;
    corsAllowedHeaders: string;
    webTokenManipulator: WebTokenManipulator;
    modelValidator: ModelValidator;
    prefixesToStripBeforeRouteMatch: string[];
    apolloRegex?: RegExp;
    apolloServer?: ApolloServer;
    apolloCreateHandlerOptions?: CreateHandlerOptions;
}
