import { App, SecretParameter, Stack, StackProps } from '@aws-cdk/cdk'; import { RestApi } from '@aws-cdk/aws-apigateway'; import * as CM from '@aws-cdk/aws-certificatemanager'; import * as CF from '@aws-cdk/aws-cloudfront'; import * as CB from '@aws-cdk/aws-codebuild'; import { GitHubSourceAction, Pipeline, Stage } from '@aws-cdk/aws-codepipeline'; import * as Events from '@aws-cdk/aws-events'; import * as IAM from '@aws-cdk/aws-iam'; import { Function as Lambda } from '@aws-cdk/aws-lambda'; import { LogGroup } from '@aws-cdk/aws-logs'; import * as S3 from '@aws-cdk/aws-s3'; import * as EC2 from '@aws-cdk/aws-ec2'; import { BuildStageConfig, CloudfrontProps, Keymap, Rule, SourceStageConfig } from './types'; export declare class SeagullStack extends Stack { constructor(app: App, projectName: string, stackProps?: StackProps); addLogGroup(logGroupName: string): LogGroup; addS3(bucketName: string, role?: IAM.IPrincipal, keepBucket?: boolean): S3.Bucket; addVPC(name: string, vpcId: string, privateSubnetIds: string[], availabilityZones: string[]): EC2.VpcNetworkRef; addLambda(name: string, folder: string, role: IAM.Role, vpc: EC2.VpcNetworkRef, env: Keymap): Lambda; addUniversalApiGateway(apiGWName: string, lambda: Lambda, stageName: string): RestApi; addIAMRole(roleName: string, principleName: string, actions: string[]): IAM.Role; addCloudfront(cfdName: string, props: CloudfrontProps): CF.CloudFrontWebDistribution; addPipeline(pipelineName: string): Pipeline; getErrorPageConfig(bucket: S3.Bucket): CF.SourceConfiguration; getDefaultBehavior(): { allowedMethods: CF.CloudFrontAllowedMethods; compress: boolean; forwardedValues: { headers: string[]; queryString: boolean; }; isDefaultBehavior: boolean; }; getErrorConfig(code: number, responseCode: number, responsePagePath: string, cachingTtl: number): { errorCachingMinTtl: number; errorCode: number; responseCode: number; responsePagePath: string; }; addSourceStage(name: string, config: SourceStageConfig): GitHubSourceAction; addGenericBuildActionStage(name: string, config: BuildStageConfig): CB.PipelineBuildAction; addDeployActionStage(name: string, config: BuildStageConfig): CB.PipelineBuildAction; addTestAction(name: string, stage: Stage, config: BuildStageConfig): CB.PipelineBuildAction; addBuildActionStage(name: string, config: BuildStageConfig, testConfig: BuildStageConfig, workerCount: number): CB.PipelineBuildAction[]; addBuildAction(name: string, stage: Stage, config: BuildStageConfig, workerMeta: { current: number; count: number; }): CB.PipelineBuildAction; addSecretParam(name: string, ssmParameter: string): SecretParameter; addNewCert(name: string, domains: string[]): CM.Certificate; importS3(bucketName: string, role?: IAM.IPrincipal): S3.BucketRef; addEventRule(rule: Rule, target: Events.IEventRuleTarget): Events.EventRule; getLogBucketConfig(name: string | undefined): { bucket: S3.Bucket; } | { bucket?: undefined; }; private createProjectConfig; private getAdditionalOutputArtifactNames; }