/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface AppsyncApiConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/appsync_api#name AppsyncApi#name}
    */
    readonly name: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/appsync_api#owner_contact AppsyncApi#owner_contact}
    */
    readonly ownerContact?: string;
    /**
    * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the [provider configuration](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#aws-configuration-reference).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/appsync_api#region AppsyncApi#region}
    */
    readonly region?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/appsync_api#tags AppsyncApi#tags}
    */
    readonly tags?: {
        [key: string]: string;
    };
    /**
    * event_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/appsync_api#event_config AppsyncApi#event_config}
    */
    readonly eventConfig?: AppsyncApiEventConfig[] | cdktf.IResolvable;
}
export interface AppsyncApiEventConfigAuthProviderCognitoConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/appsync_api#app_id_client_regex AppsyncApi#app_id_client_regex}
    */
    readonly appIdClientRegex?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/appsync_api#aws_region AppsyncApi#aws_region}
    */
    readonly awsRegion: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/appsync_api#user_pool_id AppsyncApi#user_pool_id}
    */
    readonly userPoolId: string;
}
export declare function appsyncApiEventConfigAuthProviderCognitoConfigToTerraform(struct?: AppsyncApiEventConfigAuthProviderCognitoConfig | cdktf.IResolvable): any;
export declare function appsyncApiEventConfigAuthProviderCognitoConfigToHclTerraform(struct?: AppsyncApiEventConfigAuthProviderCognitoConfig | cdktf.IResolvable): any;
export declare class AppsyncApiEventConfigAuthProviderCognitoConfigOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): AppsyncApiEventConfigAuthProviderCognitoConfig | cdktf.IResolvable | undefined;
    set internalValue(value: AppsyncApiEventConfigAuthProviderCognitoConfig | cdktf.IResolvable | undefined);
    private _appIdClientRegex?;
    get appIdClientRegex(): string;
    set appIdClientRegex(value: string);
    resetAppIdClientRegex(): void;
    get appIdClientRegexInput(): string | undefined;
    private _awsRegion?;
    get awsRegion(): string;
    set awsRegion(value: string);
    get awsRegionInput(): string | undefined;
    private _userPoolId?;
    get userPoolId(): string;
    set userPoolId(value: string);
    get userPoolIdInput(): string | undefined;
}
export declare class AppsyncApiEventConfigAuthProviderCognitoConfigList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: AppsyncApiEventConfigAuthProviderCognitoConfig[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): AppsyncApiEventConfigAuthProviderCognitoConfigOutputReference;
}
export interface AppsyncApiEventConfigAuthProviderLambdaAuthorizerConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/appsync_api#authorizer_result_ttl_in_seconds AppsyncApi#authorizer_result_ttl_in_seconds}
    */
    readonly authorizerResultTtlInSeconds?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/appsync_api#authorizer_uri AppsyncApi#authorizer_uri}
    */
    readonly authorizerUri: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/appsync_api#identity_validation_expression AppsyncApi#identity_validation_expression}
    */
    readonly identityValidationExpression?: string;
}
export declare function appsyncApiEventConfigAuthProviderLambdaAuthorizerConfigToTerraform(struct?: AppsyncApiEventConfigAuthProviderLambdaAuthorizerConfig | cdktf.IResolvable): any;
export declare function appsyncApiEventConfigAuthProviderLambdaAuthorizerConfigToHclTerraform(struct?: AppsyncApiEventConfigAuthProviderLambdaAuthorizerConfig | cdktf.IResolvable): any;
export declare class AppsyncApiEventConfigAuthProviderLambdaAuthorizerConfigOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): AppsyncApiEventConfigAuthProviderLambdaAuthorizerConfig | cdktf.IResolvable | undefined;
    set internalValue(value: AppsyncApiEventConfigAuthProviderLambdaAuthorizerConfig | cdktf.IResolvable | undefined);
    private _authorizerResultTtlInSeconds?;
    get authorizerResultTtlInSeconds(): number;
    set authorizerResultTtlInSeconds(value: number);
    resetAuthorizerResultTtlInSeconds(): void;
    get authorizerResultTtlInSecondsInput(): number | undefined;
    private _authorizerUri?;
    get authorizerUri(): string;
    set authorizerUri(value: string);
    get authorizerUriInput(): string | undefined;
    private _identityValidationExpression?;
    get identityValidationExpression(): string;
    set identityValidationExpression(value: string);
    resetIdentityValidationExpression(): void;
    get identityValidationExpressionInput(): string | undefined;
}
export declare class AppsyncApiEventConfigAuthProviderLambdaAuthorizerConfigList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: AppsyncApiEventConfigAuthProviderLambdaAuthorizerConfig[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): AppsyncApiEventConfigAuthProviderLambdaAuthorizerConfigOutputReference;
}
export interface AppsyncApiEventConfigAuthProviderOpenidConnectConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/appsync_api#auth_ttl AppsyncApi#auth_ttl}
    */
    readonly authTtl?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/appsync_api#client_id AppsyncApi#client_id}
    */
    readonly clientId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/appsync_api#iat_ttl AppsyncApi#iat_ttl}
    */
    readonly iatTtl?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/appsync_api#issuer AppsyncApi#issuer}
    */
    readonly issuer: string;
}
export declare function appsyncApiEventConfigAuthProviderOpenidConnectConfigToTerraform(struct?: AppsyncApiEventConfigAuthProviderOpenidConnectConfig | cdktf.IResolvable): any;
export declare function appsyncApiEventConfigAuthProviderOpenidConnectConfigToHclTerraform(struct?: AppsyncApiEventConfigAuthProviderOpenidConnectConfig | cdktf.IResolvable): any;
export declare class AppsyncApiEventConfigAuthProviderOpenidConnectConfigOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): AppsyncApiEventConfigAuthProviderOpenidConnectConfig | cdktf.IResolvable | undefined;
    set internalValue(value: AppsyncApiEventConfigAuthProviderOpenidConnectConfig | cdktf.IResolvable | undefined);
    private _authTtl?;
    get authTtl(): number;
    set authTtl(value: number);
    resetAuthTtl(): void;
    get authTtlInput(): number | undefined;
    private _clientId?;
    get clientId(): string;
    set clientId(value: string);
    resetClientId(): void;
    get clientIdInput(): string | undefined;
    private _iatTtl?;
    get iatTtl(): number;
    set iatTtl(value: number);
    resetIatTtl(): void;
    get iatTtlInput(): number | undefined;
    private _issuer?;
    get issuer(): string;
    set issuer(value: string);
    get issuerInput(): string | undefined;
}
export declare class AppsyncApiEventConfigAuthProviderOpenidConnectConfigList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: AppsyncApiEventConfigAuthProviderOpenidConnectConfig[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): AppsyncApiEventConfigAuthProviderOpenidConnectConfigOutputReference;
}
export interface AppsyncApiEventConfigAuthProvider {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/appsync_api#auth_type AppsyncApi#auth_type}
    */
    readonly authType: string;
    /**
    * cognito_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/appsync_api#cognito_config AppsyncApi#cognito_config}
    */
    readonly cognitoConfig?: AppsyncApiEventConfigAuthProviderCognitoConfig[] | cdktf.IResolvable;
    /**
    * lambda_authorizer_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/appsync_api#lambda_authorizer_config AppsyncApi#lambda_authorizer_config}
    */
    readonly lambdaAuthorizerConfig?: AppsyncApiEventConfigAuthProviderLambdaAuthorizerConfig[] | cdktf.IResolvable;
    /**
    * openid_connect_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/appsync_api#openid_connect_config AppsyncApi#openid_connect_config}
    */
    readonly openidConnectConfig?: AppsyncApiEventConfigAuthProviderOpenidConnectConfig[] | cdktf.IResolvable;
}
export declare function appsyncApiEventConfigAuthProviderToTerraform(struct?: AppsyncApiEventConfigAuthProvider | cdktf.IResolvable): any;
export declare function appsyncApiEventConfigAuthProviderToHclTerraform(struct?: AppsyncApiEventConfigAuthProvider | cdktf.IResolvable): any;
export declare class AppsyncApiEventConfigAuthProviderOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): AppsyncApiEventConfigAuthProvider | cdktf.IResolvable | undefined;
    set internalValue(value: AppsyncApiEventConfigAuthProvider | cdktf.IResolvable | undefined);
    private _authType?;
    get authType(): string;
    set authType(value: string);
    get authTypeInput(): string | undefined;
    private _cognitoConfig;
    get cognitoConfig(): AppsyncApiEventConfigAuthProviderCognitoConfigList;
    putCognitoConfig(value: AppsyncApiEventConfigAuthProviderCognitoConfig[] | cdktf.IResolvable): void;
    resetCognitoConfig(): void;
    get cognitoConfigInput(): cdktf.IResolvable | AppsyncApiEventConfigAuthProviderCognitoConfig[] | undefined;
    private _lambdaAuthorizerConfig;
    get lambdaAuthorizerConfig(): AppsyncApiEventConfigAuthProviderLambdaAuthorizerConfigList;
    putLambdaAuthorizerConfig(value: AppsyncApiEventConfigAuthProviderLambdaAuthorizerConfig[] | cdktf.IResolvable): void;
    resetLambdaAuthorizerConfig(): void;
    get lambdaAuthorizerConfigInput(): cdktf.IResolvable | AppsyncApiEventConfigAuthProviderLambdaAuthorizerConfig[] | undefined;
    private _openidConnectConfig;
    get openidConnectConfig(): AppsyncApiEventConfigAuthProviderOpenidConnectConfigList;
    putOpenidConnectConfig(value: AppsyncApiEventConfigAuthProviderOpenidConnectConfig[] | cdktf.IResolvable): void;
    resetOpenidConnectConfig(): void;
    get openidConnectConfigInput(): cdktf.IResolvable | AppsyncApiEventConfigAuthProviderOpenidConnectConfig[] | undefined;
}
export declare class AppsyncApiEventConfigAuthProviderList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: AppsyncApiEventConfigAuthProvider[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): AppsyncApiEventConfigAuthProviderOutputReference;
}
export interface AppsyncApiEventConfigConnectionAuthMode {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/appsync_api#auth_type AppsyncApi#auth_type}
    */
    readonly authType: string;
}
export declare function appsyncApiEventConfigConnectionAuthModeToTerraform(struct?: AppsyncApiEventConfigConnectionAuthMode | cdktf.IResolvable): any;
export declare function appsyncApiEventConfigConnectionAuthModeToHclTerraform(struct?: AppsyncApiEventConfigConnectionAuthMode | cdktf.IResolvable): any;
export declare class AppsyncApiEventConfigConnectionAuthModeOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): AppsyncApiEventConfigConnectionAuthMode | cdktf.IResolvable | undefined;
    set internalValue(value: AppsyncApiEventConfigConnectionAuthMode | cdktf.IResolvable | undefined);
    private _authType?;
    get authType(): string;
    set authType(value: string);
    get authTypeInput(): string | undefined;
}
export declare class AppsyncApiEventConfigConnectionAuthModeList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: AppsyncApiEventConfigConnectionAuthMode[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): AppsyncApiEventConfigConnectionAuthModeOutputReference;
}
export interface AppsyncApiEventConfigDefaultPublishAuthMode {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/appsync_api#auth_type AppsyncApi#auth_type}
    */
    readonly authType: string;
}
export declare function appsyncApiEventConfigDefaultPublishAuthModeToTerraform(struct?: AppsyncApiEventConfigDefaultPublishAuthMode | cdktf.IResolvable): any;
export declare function appsyncApiEventConfigDefaultPublishAuthModeToHclTerraform(struct?: AppsyncApiEventConfigDefaultPublishAuthMode | cdktf.IResolvable): any;
export declare class AppsyncApiEventConfigDefaultPublishAuthModeOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): AppsyncApiEventConfigDefaultPublishAuthMode | cdktf.IResolvable | undefined;
    set internalValue(value: AppsyncApiEventConfigDefaultPublishAuthMode | cdktf.IResolvable | undefined);
    private _authType?;
    get authType(): string;
    set authType(value: string);
    get authTypeInput(): string | undefined;
}
export declare class AppsyncApiEventConfigDefaultPublishAuthModeList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: AppsyncApiEventConfigDefaultPublishAuthMode[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): AppsyncApiEventConfigDefaultPublishAuthModeOutputReference;
}
export interface AppsyncApiEventConfigDefaultSubscribeAuthMode {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/appsync_api#auth_type AppsyncApi#auth_type}
    */
    readonly authType: string;
}
export declare function appsyncApiEventConfigDefaultSubscribeAuthModeToTerraform(struct?: AppsyncApiEventConfigDefaultSubscribeAuthMode | cdktf.IResolvable): any;
export declare function appsyncApiEventConfigDefaultSubscribeAuthModeToHclTerraform(struct?: AppsyncApiEventConfigDefaultSubscribeAuthMode | cdktf.IResolvable): any;
export declare class AppsyncApiEventConfigDefaultSubscribeAuthModeOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): AppsyncApiEventConfigDefaultSubscribeAuthMode | cdktf.IResolvable | undefined;
    set internalValue(value: AppsyncApiEventConfigDefaultSubscribeAuthMode | cdktf.IResolvable | undefined);
    private _authType?;
    get authType(): string;
    set authType(value: string);
    get authTypeInput(): string | undefined;
}
export declare class AppsyncApiEventConfigDefaultSubscribeAuthModeList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: AppsyncApiEventConfigDefaultSubscribeAuthMode[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): AppsyncApiEventConfigDefaultSubscribeAuthModeOutputReference;
}
export interface AppsyncApiEventConfigLogConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/appsync_api#cloudwatch_logs_role_arn AppsyncApi#cloudwatch_logs_role_arn}
    */
    readonly cloudwatchLogsRoleArn: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/appsync_api#log_level AppsyncApi#log_level}
    */
    readonly logLevel: string;
}
export declare function appsyncApiEventConfigLogConfigToTerraform(struct?: AppsyncApiEventConfigLogConfig | cdktf.IResolvable): any;
export declare function appsyncApiEventConfigLogConfigToHclTerraform(struct?: AppsyncApiEventConfigLogConfig | cdktf.IResolvable): any;
export declare class AppsyncApiEventConfigLogConfigOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): AppsyncApiEventConfigLogConfig | cdktf.IResolvable | undefined;
    set internalValue(value: AppsyncApiEventConfigLogConfig | cdktf.IResolvable | undefined);
    private _cloudwatchLogsRoleArn?;
    get cloudwatchLogsRoleArn(): string;
    set cloudwatchLogsRoleArn(value: string);
    get cloudwatchLogsRoleArnInput(): string | undefined;
    private _logLevel?;
    get logLevel(): string;
    set logLevel(value: string);
    get logLevelInput(): string | undefined;
}
export declare class AppsyncApiEventConfigLogConfigList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: AppsyncApiEventConfigLogConfig[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): AppsyncApiEventConfigLogConfigOutputReference;
}
export interface AppsyncApiEventConfig {
    /**
    * auth_provider block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/appsync_api#auth_provider AppsyncApi#auth_provider}
    */
    readonly authProvider?: AppsyncApiEventConfigAuthProvider[] | cdktf.IResolvable;
    /**
    * connection_auth_mode block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/appsync_api#connection_auth_mode AppsyncApi#connection_auth_mode}
    */
    readonly connectionAuthMode?: AppsyncApiEventConfigConnectionAuthMode[] | cdktf.IResolvable;
    /**
    * default_publish_auth_mode block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/appsync_api#default_publish_auth_mode AppsyncApi#default_publish_auth_mode}
    */
    readonly defaultPublishAuthMode?: AppsyncApiEventConfigDefaultPublishAuthMode[] | cdktf.IResolvable;
    /**
    * default_subscribe_auth_mode block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/appsync_api#default_subscribe_auth_mode AppsyncApi#default_subscribe_auth_mode}
    */
    readonly defaultSubscribeAuthMode?: AppsyncApiEventConfigDefaultSubscribeAuthMode[] | cdktf.IResolvable;
    /**
    * log_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/appsync_api#log_config AppsyncApi#log_config}
    */
    readonly logConfig?: AppsyncApiEventConfigLogConfig[] | cdktf.IResolvable;
}
export declare function appsyncApiEventConfigToTerraform(struct?: AppsyncApiEventConfig | cdktf.IResolvable): any;
export declare function appsyncApiEventConfigToHclTerraform(struct?: AppsyncApiEventConfig | cdktf.IResolvable): any;
export declare class AppsyncApiEventConfigOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): AppsyncApiEventConfig | cdktf.IResolvable | undefined;
    set internalValue(value: AppsyncApiEventConfig | cdktf.IResolvable | undefined);
    private _authProvider;
    get authProvider(): AppsyncApiEventConfigAuthProviderList;
    putAuthProvider(value: AppsyncApiEventConfigAuthProvider[] | cdktf.IResolvable): void;
    resetAuthProvider(): void;
    get authProviderInput(): cdktf.IResolvable | AppsyncApiEventConfigAuthProvider[] | undefined;
    private _connectionAuthMode;
    get connectionAuthMode(): AppsyncApiEventConfigConnectionAuthModeList;
    putConnectionAuthMode(value: AppsyncApiEventConfigConnectionAuthMode[] | cdktf.IResolvable): void;
    resetConnectionAuthMode(): void;
    get connectionAuthModeInput(): cdktf.IResolvable | AppsyncApiEventConfigConnectionAuthMode[] | undefined;
    private _defaultPublishAuthMode;
    get defaultPublishAuthMode(): AppsyncApiEventConfigDefaultPublishAuthModeList;
    putDefaultPublishAuthMode(value: AppsyncApiEventConfigDefaultPublishAuthMode[] | cdktf.IResolvable): void;
    resetDefaultPublishAuthMode(): void;
    get defaultPublishAuthModeInput(): cdktf.IResolvable | AppsyncApiEventConfigDefaultPublishAuthMode[] | undefined;
    private _defaultSubscribeAuthMode;
    get defaultSubscribeAuthMode(): AppsyncApiEventConfigDefaultSubscribeAuthModeList;
    putDefaultSubscribeAuthMode(value: AppsyncApiEventConfigDefaultSubscribeAuthMode[] | cdktf.IResolvable): void;
    resetDefaultSubscribeAuthMode(): void;
    get defaultSubscribeAuthModeInput(): cdktf.IResolvable | AppsyncApiEventConfigDefaultSubscribeAuthMode[] | undefined;
    private _logConfig;
    get logConfig(): AppsyncApiEventConfigLogConfigList;
    putLogConfig(value: AppsyncApiEventConfigLogConfig[] | cdktf.IResolvable): void;
    resetLogConfig(): void;
    get logConfigInput(): cdktf.IResolvable | AppsyncApiEventConfigLogConfig[] | undefined;
}
export declare class AppsyncApiEventConfigList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: AppsyncApiEventConfig[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): AppsyncApiEventConfigOutputReference;
}
/**
* Represents a {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/appsync_api aws_appsync_api}
*/
export declare class AppsyncApi extends cdktf.TerraformResource {
    static readonly tfResourceType = "aws_appsync_api";
    /**
    * Generates CDKTF code for importing a AppsyncApi resource upon running "cdktf plan <stack-name>"
    * @param scope The scope in which to define this construct
    * @param importToId The construct id used in the generated config for the AppsyncApi to import
    * @param importFromId The id of the existing AppsyncApi that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/appsync_api#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the AppsyncApi to import is found
    */
    static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): cdktf.ImportableResource;
    /**
    * Create a new {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/appsync_api aws_appsync_api} Resource
    *
    * @param scope The scope in which to define this construct
    * @param id The scoped construct ID. Must be unique amongst siblings in the same scope
    * @param options AppsyncApiConfig
    */
    constructor(scope: Construct, id: string, config: AppsyncApiConfig);
    get apiArn(): string;
    get apiId(): string;
    private _dns;
    get dns(): cdktf.StringMap;
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
    private _ownerContact?;
    get ownerContact(): string;
    set ownerContact(value: string);
    resetOwnerContact(): void;
    get ownerContactInput(): string | undefined;
    private _region?;
    get region(): string;
    set region(value: string);
    resetRegion(): void;
    get regionInput(): string | undefined;
    private _tags?;
    get tags(): {
        [key: string]: string;
    };
    set tags(value: {
        [key: string]: string;
    });
    resetTags(): void;
    get tagsInput(): {
        [key: string]: string;
    } | undefined;
    private _tagsAll;
    get tagsAll(): cdktf.StringMap;
    get wafWebAclArn(): string;
    get xrayEnabled(): cdktf.IResolvable;
    private _eventConfig;
    get eventConfig(): AppsyncApiEventConfigList;
    putEventConfig(value: AppsyncApiEventConfig[] | cdktf.IResolvable): void;
    resetEventConfig(): void;
    get eventConfigInput(): cdktf.IResolvable | AppsyncApiEventConfig[] | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
