import { ComposerFn } from './utils/compose'; import { Stack } from 'aws-cdk-lib'; import { AddRoutesOptions, HttpApiProps, HttpMethod, IHttpApi, IHttpRoute, IHttpRouteAuthorizer } from 'aws-cdk-lib/aws-apigatewayv2'; import { IFunction } from 'aws-cdk-lib/aws-lambda'; export type HttpApiDomain = Readonly<{ domain: string; basePath: string; }>; export type HttpApiInput = Readonly<{ apiName: string; }>; export type HttpApiConfiguration = Partial & Readonly<{ domain?: HttpApiDomain; }>; /** Returns a default HTTP API configuration with CORS allowing all origins and GET requests. */ export declare const withDefaultApiConfiguration: () => HttpApiConfiguration; /** Builds an HTTP API configuration with a JWT authorizer (e.g. Cognito, Auth0). */ export declare const withAuthorizerConfiguration: (name: string, issuer: string, audience: Array) => HttpApiConfiguration; /** * Creates an HTTP API (API Gateway V2) with a custom stage, JSON access logging, * and optional custom domain mapping. */ export declare const withHttpApi: (deps: { defaultConfiguration: HttpApiConfiguration; stack: Stack; }) => (input: HttpApiInput, configuration?: Partial) => IHttpApi; export type HttpRouteConfiguration = Readonly<{ method: HttpMethod; fn: IFunction; options?: Partial; }>; /** Adds a Lambda-backed route to a composed HTTP API. */ export declare const withRoute: (path: string, configuration: HttpRouteConfiguration) => (api: ComposedHttpApi) => ComposedHttpApi; export type DefaultHttpApiOptions = Readonly<{ authorizer?: IHttpRouteAuthorizer; }>; /** An HTTP API paired with accumulated routes and default options, threaded through composition. */ export type ComposedHttpApi = Readonly<{ api: IHttpApi; defaultHttpOptions: DefaultHttpApiOptions; routes: { [key: string]: IHttpRoute; }; }>; /** Composes an HTTP API by piping it through a sequence of `withRoute` calls. */ export declare const composedHttpApi: (deps: { defaultOptions: DefaultHttpApiOptions; }) => (api: IHttpApi, ...args: Array>) => ComposedHttpApi; //# sourceMappingURL=http-api-v2.d.ts.map