import type { AwsResourceCommon } from "../common";
import type { CloudFormationValue } from "../IntrinsicFunctions";
export declare type RouteType = 'AWS::ApiGatewayV2::Route';
export interface Route extends AwsResourceCommon {
    Type: RouteType;
    Properties: RouteProperties;
}
export declare type RouteProperties = HttpRouteProperties | WebSocketRouteProperties;
export interface HttpRouteProperties extends RoutePropertiesBase {
    AuthorizationScopes?: string[];
    AuthorizationType?: HttpAuthorizationTypes;
}
export interface WebSocketRouteProperties extends RoutePropertiesBase {
    ApiKeyRequired?: boolean;
    AuthorizationType?: WebSocketAuthorizationTypes;
    ModelSelectionExpression?: string;
    RequestModels?: object;
    RequestParameters?: object;
    RouteResponseSelectionExpression?: string;
}
export interface RoutePropertiesBase {
    ApiId: CloudFormationValue;
    AuthorizerId?: CloudFormationValue;
    OperationName?: string;
    RouteKey: string;
    Target?: CloudFormationValue;
}
export declare type CommonAuthorizationTypes = 'AWS_IAM' | 'CUSTOM' | 'NONE';
export declare type HttpAuthorizationTypes = CommonAuthorizationTypes | 'JWT';
export declare type WebSocketAuthorizationTypes = CommonAuthorizationTypes;
