import * as cdk from "@aws-cdk/core"; import * as logs from "@aws-cdk/aws-logs"; import * as acm from "@aws-cdk/aws-certificatemanager"; import * as apig from "@aws-cdk/aws-apigatewayv2"; import { Function as Fn, FunctionProps, FunctionDefinition } from "./Function"; import { Permissions } from "./util/permission"; import * as apigV2Domain from "./util/apiGatewayV2Domain"; export declare enum WebSocketApiAuthorizationType { NONE = "NONE", IAM = "AWS_IAM" } export interface WebSocketApiProps { readonly webSocketApi?: apig.IWebSocketApi | apig.WebSocketApiProps; readonly webSocketStage?: apig.IWebSocketStage | WebSocketApiCdkStageProps; readonly routes?: { [key: string]: FunctionDefinition; }; readonly accessLog?: boolean | string | apig.CfnStage.AccessLogSettingsProperty; readonly customDomain?: string | WebSocketApiCustomDomainProps; readonly authorizationType?: WebSocketApiAuthorizationType; readonly defaultFunctionProps?: FunctionProps; } export declare type WebSocketApiCustomDomainProps = apigV2Domain.CustomDomainProps; export interface WebSocketApiCdkStageProps extends Omit { readonly stageName?: string; } export declare class WebSocketApi extends cdk.Construct { readonly webSocketApi: apig.WebSocketApi; readonly webSocketStage: apig.WebSocketStage; readonly _customDomainUrl?: string; readonly accessLogGroup?: logs.LogGroup; readonly apiGatewayDomain?: apig.DomainName; readonly acmCertificate?: acm.Certificate; private readonly functions; private readonly permissionsAttachedForAllRoutes; private readonly authorizationType?; private readonly defaultFunctionProps?; constructor(scope: cdk.Construct, id: string, props?: WebSocketApiProps); get url(): string; get customDomainUrl(): string | undefined; get routes(): string[]; addRoutes(scope: cdk.Construct, routes: { [key: string]: FunctionDefinition; }): void; getFunction(routeKey: string): Fn | undefined; attachPermissions(permissions: Permissions): void; attachPermissionsToRoute(routeKey: string, permissions: Permissions): void; private addRoute; private normalizeRouteKey; }