/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface IdentityPlatformConfigConfig extends cdktf.TerraformMetaArguments {
    /**
    * List of domains authorized for OAuth redirects.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#authorized_domains IdentityPlatformConfig#authorized_domains}
    */
    readonly authorizedDomains?: string[];
    /**
    * Whether anonymous users will be auto-deleted after a period of 30 days
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#autodelete_anonymous_users IdentityPlatformConfig#autodelete_anonymous_users}
    */
    readonly autodeleteAnonymousUsers?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#id IdentityPlatformConfig#id}
    *
    * Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2.
    * If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable.
    */
    readonly id?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#project IdentityPlatformConfig#project}
    */
    readonly project?: string;
    /**
    * blocking_functions block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#blocking_functions IdentityPlatformConfig#blocking_functions}
    */
    readonly blockingFunctions?: IdentityPlatformConfigBlockingFunctions;
    /**
    * client block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#client IdentityPlatformConfig#client}
    */
    readonly client?: IdentityPlatformConfigClient;
    /**
    * mfa block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#mfa IdentityPlatformConfig#mfa}
    */
    readonly mfa?: IdentityPlatformConfigMfa;
    /**
    * monitoring block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#monitoring IdentityPlatformConfig#monitoring}
    */
    readonly monitoring?: IdentityPlatformConfigMonitoring;
    /**
    * multi_tenant block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#multi_tenant IdentityPlatformConfig#multi_tenant}
    */
    readonly multiTenant?: IdentityPlatformConfigMultiTenant;
    /**
    * quota block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#quota IdentityPlatformConfig#quota}
    */
    readonly quota?: IdentityPlatformConfigQuota;
    /**
    * sign_in block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#sign_in IdentityPlatformConfig#sign_in}
    */
    readonly signIn?: IdentityPlatformConfigSignIn;
    /**
    * sms_region_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#sms_region_config IdentityPlatformConfig#sms_region_config}
    */
    readonly smsRegionConfig?: IdentityPlatformConfigSmsRegionConfig;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#timeouts IdentityPlatformConfig#timeouts}
    */
    readonly timeouts?: IdentityPlatformConfigTimeouts;
}
export interface IdentityPlatformConfigBlockingFunctionsForwardInboundCredentials {
    /**
    * Whether to pass the user's OAuth identity provider's access token.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#access_token IdentityPlatformConfig#access_token}
    */
    readonly accessToken?: boolean | cdktf.IResolvable;
    /**
    * Whether to pass the user's OIDC identity provider's ID token.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#id_token IdentityPlatformConfig#id_token}
    */
    readonly idToken?: boolean | cdktf.IResolvable;
    /**
    * Whether to pass the user's OAuth identity provider's refresh token.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#refresh_token IdentityPlatformConfig#refresh_token}
    */
    readonly refreshToken?: boolean | cdktf.IResolvable;
}
export declare function identityPlatformConfigBlockingFunctionsForwardInboundCredentialsToTerraform(struct?: IdentityPlatformConfigBlockingFunctionsForwardInboundCredentialsOutputReference | IdentityPlatformConfigBlockingFunctionsForwardInboundCredentials): any;
export declare function identityPlatformConfigBlockingFunctionsForwardInboundCredentialsToHclTerraform(struct?: IdentityPlatformConfigBlockingFunctionsForwardInboundCredentialsOutputReference | IdentityPlatformConfigBlockingFunctionsForwardInboundCredentials): any;
export declare class IdentityPlatformConfigBlockingFunctionsForwardInboundCredentialsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): IdentityPlatformConfigBlockingFunctionsForwardInboundCredentials | undefined;
    set internalValue(value: IdentityPlatformConfigBlockingFunctionsForwardInboundCredentials | undefined);
    private _accessToken?;
    get accessToken(): boolean | cdktf.IResolvable;
    set accessToken(value: boolean | cdktf.IResolvable);
    resetAccessToken(): void;
    get accessTokenInput(): boolean | cdktf.IResolvable | undefined;
    private _idToken?;
    get idToken(): boolean | cdktf.IResolvable;
    set idToken(value: boolean | cdktf.IResolvable);
    resetIdToken(): void;
    get idTokenInput(): boolean | cdktf.IResolvable | undefined;
    private _refreshToken?;
    get refreshToken(): boolean | cdktf.IResolvable;
    set refreshToken(value: boolean | cdktf.IResolvable);
    resetRefreshToken(): void;
    get refreshTokenInput(): boolean | cdktf.IResolvable | undefined;
}
export interface IdentityPlatformConfigBlockingFunctionsTriggers {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#event_type IdentityPlatformConfig#event_type}
    */
    readonly eventType: string;
    /**
    * HTTP URI trigger for the Cloud Function.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#function_uri IdentityPlatformConfig#function_uri}
    */
    readonly functionUri: string;
}
export declare function identityPlatformConfigBlockingFunctionsTriggersToTerraform(struct?: IdentityPlatformConfigBlockingFunctionsTriggers | cdktf.IResolvable): any;
export declare function identityPlatformConfigBlockingFunctionsTriggersToHclTerraform(struct?: IdentityPlatformConfigBlockingFunctionsTriggers | cdktf.IResolvable): any;
export declare class IdentityPlatformConfigBlockingFunctionsTriggersOutputReference 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(): IdentityPlatformConfigBlockingFunctionsTriggers | cdktf.IResolvable | undefined;
    set internalValue(value: IdentityPlatformConfigBlockingFunctionsTriggers | cdktf.IResolvable | undefined);
    private _eventType?;
    get eventType(): string;
    set eventType(value: string);
    get eventTypeInput(): string | undefined;
    private _functionUri?;
    get functionUri(): string;
    set functionUri(value: string);
    get functionUriInput(): string | undefined;
    get updateTime(): string;
}
export declare class IdentityPlatformConfigBlockingFunctionsTriggersList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: IdentityPlatformConfigBlockingFunctionsTriggers[] | 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): IdentityPlatformConfigBlockingFunctionsTriggersOutputReference;
}
export interface IdentityPlatformConfigBlockingFunctions {
    /**
    * forward_inbound_credentials block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#forward_inbound_credentials IdentityPlatformConfig#forward_inbound_credentials}
    */
    readonly forwardInboundCredentials?: IdentityPlatformConfigBlockingFunctionsForwardInboundCredentials;
    /**
    * triggers block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#triggers IdentityPlatformConfig#triggers}
    */
    readonly triggers: IdentityPlatformConfigBlockingFunctionsTriggers[] | cdktf.IResolvable;
}
export declare function identityPlatformConfigBlockingFunctionsToTerraform(struct?: IdentityPlatformConfigBlockingFunctionsOutputReference | IdentityPlatformConfigBlockingFunctions): any;
export declare function identityPlatformConfigBlockingFunctionsToHclTerraform(struct?: IdentityPlatformConfigBlockingFunctionsOutputReference | IdentityPlatformConfigBlockingFunctions): any;
export declare class IdentityPlatformConfigBlockingFunctionsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): IdentityPlatformConfigBlockingFunctions | undefined;
    set internalValue(value: IdentityPlatformConfigBlockingFunctions | undefined);
    private _forwardInboundCredentials;
    get forwardInboundCredentials(): IdentityPlatformConfigBlockingFunctionsForwardInboundCredentialsOutputReference;
    putForwardInboundCredentials(value: IdentityPlatformConfigBlockingFunctionsForwardInboundCredentials): void;
    resetForwardInboundCredentials(): void;
    get forwardInboundCredentialsInput(): IdentityPlatformConfigBlockingFunctionsForwardInboundCredentials | undefined;
    private _triggers;
    get triggers(): IdentityPlatformConfigBlockingFunctionsTriggersList;
    putTriggers(value: IdentityPlatformConfigBlockingFunctionsTriggers[] | cdktf.IResolvable): void;
    get triggersInput(): cdktf.IResolvable | IdentityPlatformConfigBlockingFunctionsTriggers[] | undefined;
}
export interface IdentityPlatformConfigClientPermissions {
    /**
    * When true, end users cannot delete their account on the associated project through any of our API methods
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#disabled_user_deletion IdentityPlatformConfig#disabled_user_deletion}
    */
    readonly disabledUserDeletion?: boolean | cdktf.IResolvable;
    /**
    * When true, end users cannot sign up for a new account on the associated project through any of our API methods
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#disabled_user_signup IdentityPlatformConfig#disabled_user_signup}
    */
    readonly disabledUserSignup?: boolean | cdktf.IResolvable;
}
export declare function identityPlatformConfigClientPermissionsToTerraform(struct?: IdentityPlatformConfigClientPermissionsOutputReference | IdentityPlatformConfigClientPermissions): any;
export declare function identityPlatformConfigClientPermissionsToHclTerraform(struct?: IdentityPlatformConfigClientPermissionsOutputReference | IdentityPlatformConfigClientPermissions): any;
export declare class IdentityPlatformConfigClientPermissionsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): IdentityPlatformConfigClientPermissions | undefined;
    set internalValue(value: IdentityPlatformConfigClientPermissions | undefined);
    private _disabledUserDeletion?;
    get disabledUserDeletion(): boolean | cdktf.IResolvable;
    set disabledUserDeletion(value: boolean | cdktf.IResolvable);
    resetDisabledUserDeletion(): void;
    get disabledUserDeletionInput(): boolean | cdktf.IResolvable | undefined;
    private _disabledUserSignup?;
    get disabledUserSignup(): boolean | cdktf.IResolvable;
    set disabledUserSignup(value: boolean | cdktf.IResolvable);
    resetDisabledUserSignup(): void;
    get disabledUserSignupInput(): boolean | cdktf.IResolvable | undefined;
}
export interface IdentityPlatformConfigClient {
    /**
    * permissions block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#permissions IdentityPlatformConfig#permissions}
    */
    readonly permissions?: IdentityPlatformConfigClientPermissions;
}
export declare function identityPlatformConfigClientToTerraform(struct?: IdentityPlatformConfigClientOutputReference | IdentityPlatformConfigClient): any;
export declare function identityPlatformConfigClientToHclTerraform(struct?: IdentityPlatformConfigClientOutputReference | IdentityPlatformConfigClient): any;
export declare class IdentityPlatformConfigClientOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): IdentityPlatformConfigClient | undefined;
    set internalValue(value: IdentityPlatformConfigClient | undefined);
    get apiKey(): string;
    get firebaseSubdomain(): string;
    private _permissions;
    get permissions(): IdentityPlatformConfigClientPermissionsOutputReference;
    putPermissions(value: IdentityPlatformConfigClientPermissions): void;
    resetPermissions(): void;
    get permissionsInput(): IdentityPlatformConfigClientPermissions | undefined;
}
export interface IdentityPlatformConfigMfaProviderConfigsTotpProviderConfig {
    /**
    * The allowed number of adjacent intervals that will be used for verification to avoid clock skew.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#adjacent_intervals IdentityPlatformConfig#adjacent_intervals}
    */
    readonly adjacentIntervals?: number;
}
export declare function identityPlatformConfigMfaProviderConfigsTotpProviderConfigToTerraform(struct?: IdentityPlatformConfigMfaProviderConfigsTotpProviderConfigOutputReference | IdentityPlatformConfigMfaProviderConfigsTotpProviderConfig): any;
export declare function identityPlatformConfigMfaProviderConfigsTotpProviderConfigToHclTerraform(struct?: IdentityPlatformConfigMfaProviderConfigsTotpProviderConfigOutputReference | IdentityPlatformConfigMfaProviderConfigsTotpProviderConfig): any;
export declare class IdentityPlatformConfigMfaProviderConfigsTotpProviderConfigOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): IdentityPlatformConfigMfaProviderConfigsTotpProviderConfig | undefined;
    set internalValue(value: IdentityPlatformConfigMfaProviderConfigsTotpProviderConfig | undefined);
    private _adjacentIntervals?;
    get adjacentIntervals(): number;
    set adjacentIntervals(value: number);
    resetAdjacentIntervals(): void;
    get adjacentIntervalsInput(): number | undefined;
}
export interface IdentityPlatformConfigMfaProviderConfigs {
    /**
    * Whether MultiFactor Authentication has been enabled for this project. Possible values: ["DISABLED", "ENABLED", "MANDATORY"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#state IdentityPlatformConfig#state}
    */
    readonly state?: string;
    /**
    * totp_provider_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#totp_provider_config IdentityPlatformConfig#totp_provider_config}
    */
    readonly totpProviderConfig?: IdentityPlatformConfigMfaProviderConfigsTotpProviderConfig;
}
export declare function identityPlatformConfigMfaProviderConfigsToTerraform(struct?: IdentityPlatformConfigMfaProviderConfigs | cdktf.IResolvable): any;
export declare function identityPlatformConfigMfaProviderConfigsToHclTerraform(struct?: IdentityPlatformConfigMfaProviderConfigs | cdktf.IResolvable): any;
export declare class IdentityPlatformConfigMfaProviderConfigsOutputReference 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(): IdentityPlatformConfigMfaProviderConfigs | cdktf.IResolvable | undefined;
    set internalValue(value: IdentityPlatformConfigMfaProviderConfigs | cdktf.IResolvable | undefined);
    private _state?;
    get state(): string;
    set state(value: string);
    resetState(): void;
    get stateInput(): string | undefined;
    private _totpProviderConfig;
    get totpProviderConfig(): IdentityPlatformConfigMfaProviderConfigsTotpProviderConfigOutputReference;
    putTotpProviderConfig(value: IdentityPlatformConfigMfaProviderConfigsTotpProviderConfig): void;
    resetTotpProviderConfig(): void;
    get totpProviderConfigInput(): IdentityPlatformConfigMfaProviderConfigsTotpProviderConfig | undefined;
}
export declare class IdentityPlatformConfigMfaProviderConfigsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: IdentityPlatformConfigMfaProviderConfigs[] | 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): IdentityPlatformConfigMfaProviderConfigsOutputReference;
}
export interface IdentityPlatformConfigMfa {
    /**
    * A list of usable second factors for this project. Possible values: ["PHONE_SMS"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#enabled_providers IdentityPlatformConfig#enabled_providers}
    */
    readonly enabledProviders?: string[];
    /**
    * Whether MultiFactor Authentication has been enabled for this project. Possible values: ["DISABLED", "ENABLED", "MANDATORY"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#state IdentityPlatformConfig#state}
    */
    readonly state?: string;
    /**
    * provider_configs block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#provider_configs IdentityPlatformConfig#provider_configs}
    */
    readonly providerConfigs?: IdentityPlatformConfigMfaProviderConfigs[] | cdktf.IResolvable;
}
export declare function identityPlatformConfigMfaToTerraform(struct?: IdentityPlatformConfigMfaOutputReference | IdentityPlatformConfigMfa): any;
export declare function identityPlatformConfigMfaToHclTerraform(struct?: IdentityPlatformConfigMfaOutputReference | IdentityPlatformConfigMfa): any;
export declare class IdentityPlatformConfigMfaOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): IdentityPlatformConfigMfa | undefined;
    set internalValue(value: IdentityPlatformConfigMfa | undefined);
    private _enabledProviders?;
    get enabledProviders(): string[];
    set enabledProviders(value: string[]);
    resetEnabledProviders(): void;
    get enabledProvidersInput(): string[] | undefined;
    private _state?;
    get state(): string;
    set state(value: string);
    resetState(): void;
    get stateInput(): string | undefined;
    private _providerConfigs;
    get providerConfigs(): IdentityPlatformConfigMfaProviderConfigsList;
    putProviderConfigs(value: IdentityPlatformConfigMfaProviderConfigs[] | cdktf.IResolvable): void;
    resetProviderConfigs(): void;
    get providerConfigsInput(): cdktf.IResolvable | IdentityPlatformConfigMfaProviderConfigs[] | undefined;
}
export interface IdentityPlatformConfigMonitoringRequestLogging {
    /**
    * Whether logging is enabled for this project or not.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#enabled IdentityPlatformConfig#enabled}
    */
    readonly enabled?: boolean | cdktf.IResolvable;
}
export declare function identityPlatformConfigMonitoringRequestLoggingToTerraform(struct?: IdentityPlatformConfigMonitoringRequestLoggingOutputReference | IdentityPlatformConfigMonitoringRequestLogging): any;
export declare function identityPlatformConfigMonitoringRequestLoggingToHclTerraform(struct?: IdentityPlatformConfigMonitoringRequestLoggingOutputReference | IdentityPlatformConfigMonitoringRequestLogging): any;
export declare class IdentityPlatformConfigMonitoringRequestLoggingOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): IdentityPlatformConfigMonitoringRequestLogging | undefined;
    set internalValue(value: IdentityPlatformConfigMonitoringRequestLogging | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    resetEnabled(): void;
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface IdentityPlatformConfigMonitoring {
    /**
    * request_logging block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#request_logging IdentityPlatformConfig#request_logging}
    */
    readonly requestLogging?: IdentityPlatformConfigMonitoringRequestLogging;
}
export declare function identityPlatformConfigMonitoringToTerraform(struct?: IdentityPlatformConfigMonitoringOutputReference | IdentityPlatformConfigMonitoring): any;
export declare function identityPlatformConfigMonitoringToHclTerraform(struct?: IdentityPlatformConfigMonitoringOutputReference | IdentityPlatformConfigMonitoring): any;
export declare class IdentityPlatformConfigMonitoringOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): IdentityPlatformConfigMonitoring | undefined;
    set internalValue(value: IdentityPlatformConfigMonitoring | undefined);
    private _requestLogging;
    get requestLogging(): IdentityPlatformConfigMonitoringRequestLoggingOutputReference;
    putRequestLogging(value: IdentityPlatformConfigMonitoringRequestLogging): void;
    resetRequestLogging(): void;
    get requestLoggingInput(): IdentityPlatformConfigMonitoringRequestLogging | undefined;
}
export interface IdentityPlatformConfigMultiTenant {
    /**
    * Whether this project can have tenants or not.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#allow_tenants IdentityPlatformConfig#allow_tenants}
    */
    readonly allowTenants?: boolean | cdktf.IResolvable;
    /**
    * The default cloud parent org or folder that the tenant project should be created under.
    * The parent resource name should be in the format of "/", such as "folders/123" or "organizations/456".
    * If the value is not set, the tenant will be created under the same organization or folder as the agent project.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#default_tenant_location IdentityPlatformConfig#default_tenant_location}
    */
    readonly defaultTenantLocation?: string;
}
export declare function identityPlatformConfigMultiTenantToTerraform(struct?: IdentityPlatformConfigMultiTenantOutputReference | IdentityPlatformConfigMultiTenant): any;
export declare function identityPlatformConfigMultiTenantToHclTerraform(struct?: IdentityPlatformConfigMultiTenantOutputReference | IdentityPlatformConfigMultiTenant): any;
export declare class IdentityPlatformConfigMultiTenantOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): IdentityPlatformConfigMultiTenant | undefined;
    set internalValue(value: IdentityPlatformConfigMultiTenant | undefined);
    private _allowTenants?;
    get allowTenants(): boolean | cdktf.IResolvable;
    set allowTenants(value: boolean | cdktf.IResolvable);
    resetAllowTenants(): void;
    get allowTenantsInput(): boolean | cdktf.IResolvable | undefined;
    private _defaultTenantLocation?;
    get defaultTenantLocation(): string;
    set defaultTenantLocation(value: string);
    resetDefaultTenantLocation(): void;
    get defaultTenantLocationInput(): string | undefined;
}
export interface IdentityPlatformConfigQuotaSignUpQuotaConfig {
    /**
    * A sign up APIs quota that customers can override temporarily. Value can be in between 1 and 1000.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#quota IdentityPlatformConfig#quota}
    */
    readonly quota?: number;
    /**
    * How long this quota will be active for. It is measurred in seconds, e.g., Example: "9.615s".
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#quota_duration IdentityPlatformConfig#quota_duration}
    */
    readonly quotaDuration?: string;
    /**
    * When this quota will take affect.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#start_time IdentityPlatformConfig#start_time}
    */
    readonly startTime?: string;
}
export declare function identityPlatformConfigQuotaSignUpQuotaConfigToTerraform(struct?: IdentityPlatformConfigQuotaSignUpQuotaConfigOutputReference | IdentityPlatformConfigQuotaSignUpQuotaConfig): any;
export declare function identityPlatformConfigQuotaSignUpQuotaConfigToHclTerraform(struct?: IdentityPlatformConfigQuotaSignUpQuotaConfigOutputReference | IdentityPlatformConfigQuotaSignUpQuotaConfig): any;
export declare class IdentityPlatformConfigQuotaSignUpQuotaConfigOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): IdentityPlatformConfigQuotaSignUpQuotaConfig | undefined;
    set internalValue(value: IdentityPlatformConfigQuotaSignUpQuotaConfig | undefined);
    private _quota?;
    get quota(): number;
    set quota(value: number);
    resetQuota(): void;
    get quotaInput(): number | undefined;
    private _quotaDuration?;
    get quotaDuration(): string;
    set quotaDuration(value: string);
    resetQuotaDuration(): void;
    get quotaDurationInput(): string | undefined;
    private _startTime?;
    get startTime(): string;
    set startTime(value: string);
    resetStartTime(): void;
    get startTimeInput(): string | undefined;
}
export interface IdentityPlatformConfigQuota {
    /**
    * sign_up_quota_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#sign_up_quota_config IdentityPlatformConfig#sign_up_quota_config}
    */
    readonly signUpQuotaConfig?: IdentityPlatformConfigQuotaSignUpQuotaConfig;
}
export declare function identityPlatformConfigQuotaToTerraform(struct?: IdentityPlatformConfigQuotaOutputReference | IdentityPlatformConfigQuota): any;
export declare function identityPlatformConfigQuotaToHclTerraform(struct?: IdentityPlatformConfigQuotaOutputReference | IdentityPlatformConfigQuota): any;
export declare class IdentityPlatformConfigQuotaOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): IdentityPlatformConfigQuota | undefined;
    set internalValue(value: IdentityPlatformConfigQuota | undefined);
    private _signUpQuotaConfig;
    get signUpQuotaConfig(): IdentityPlatformConfigQuotaSignUpQuotaConfigOutputReference;
    putSignUpQuotaConfig(value: IdentityPlatformConfigQuotaSignUpQuotaConfig): void;
    resetSignUpQuotaConfig(): void;
    get signUpQuotaConfigInput(): IdentityPlatformConfigQuotaSignUpQuotaConfig | undefined;
}
export interface IdentityPlatformConfigSignInHashConfig {
}
export declare function identityPlatformConfigSignInHashConfigToTerraform(struct?: IdentityPlatformConfigSignInHashConfig): any;
export declare function identityPlatformConfigSignInHashConfigToHclTerraform(struct?: IdentityPlatformConfigSignInHashConfig): any;
export declare class IdentityPlatformConfigSignInHashConfigOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @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(): IdentityPlatformConfigSignInHashConfig | undefined;
    set internalValue(value: IdentityPlatformConfigSignInHashConfig | undefined);
    get algorithm(): string;
    get memoryCost(): number;
    get rounds(): number;
    get saltSeparator(): string;
    get signerKey(): string;
}
export declare class IdentityPlatformConfigSignInHashConfigList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @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): IdentityPlatformConfigSignInHashConfigOutputReference;
}
export interface IdentityPlatformConfigSignInAnonymous {
    /**
    * Whether anonymous user auth is enabled for the project or not.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#enabled IdentityPlatformConfig#enabled}
    */
    readonly enabled: boolean | cdktf.IResolvable;
}
export declare function identityPlatformConfigSignInAnonymousToTerraform(struct?: IdentityPlatformConfigSignInAnonymousOutputReference | IdentityPlatformConfigSignInAnonymous): any;
export declare function identityPlatformConfigSignInAnonymousToHclTerraform(struct?: IdentityPlatformConfigSignInAnonymousOutputReference | IdentityPlatformConfigSignInAnonymous): any;
export declare class IdentityPlatformConfigSignInAnonymousOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): IdentityPlatformConfigSignInAnonymous | undefined;
    set internalValue(value: IdentityPlatformConfigSignInAnonymous | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface IdentityPlatformConfigSignInEmail {
    /**
    * Whether email auth is enabled for the project or not.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#enabled IdentityPlatformConfig#enabled}
    */
    readonly enabled: boolean | cdktf.IResolvable;
    /**
    * Whether a password is required for email auth or not. If true, both an email and
    * password must be provided to sign in. If false, a user may sign in via either
    * email/password or email link.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#password_required IdentityPlatformConfig#password_required}
    */
    readonly passwordRequired?: boolean | cdktf.IResolvable;
}
export declare function identityPlatformConfigSignInEmailToTerraform(struct?: IdentityPlatformConfigSignInEmailOutputReference | IdentityPlatformConfigSignInEmail): any;
export declare function identityPlatformConfigSignInEmailToHclTerraform(struct?: IdentityPlatformConfigSignInEmailOutputReference | IdentityPlatformConfigSignInEmail): any;
export declare class IdentityPlatformConfigSignInEmailOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): IdentityPlatformConfigSignInEmail | undefined;
    set internalValue(value: IdentityPlatformConfigSignInEmail | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
    private _passwordRequired?;
    get passwordRequired(): boolean | cdktf.IResolvable;
    set passwordRequired(value: boolean | cdktf.IResolvable);
    resetPasswordRequired(): void;
    get passwordRequiredInput(): boolean | cdktf.IResolvable | undefined;
}
export interface IdentityPlatformConfigSignInPhoneNumber {
    /**
    * Whether phone number auth is enabled for the project or not.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#enabled IdentityPlatformConfig#enabled}
    */
    readonly enabled: boolean | cdktf.IResolvable;
    /**
    * A map of <test phone number, fake code> that can be used for phone auth testing.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#test_phone_numbers IdentityPlatformConfig#test_phone_numbers}
    */
    readonly testPhoneNumbers?: {
        [key: string]: string;
    };
}
export declare function identityPlatformConfigSignInPhoneNumberToTerraform(struct?: IdentityPlatformConfigSignInPhoneNumberOutputReference | IdentityPlatformConfigSignInPhoneNumber): any;
export declare function identityPlatformConfigSignInPhoneNumberToHclTerraform(struct?: IdentityPlatformConfigSignInPhoneNumberOutputReference | IdentityPlatformConfigSignInPhoneNumber): any;
export declare class IdentityPlatformConfigSignInPhoneNumberOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): IdentityPlatformConfigSignInPhoneNumber | undefined;
    set internalValue(value: IdentityPlatformConfigSignInPhoneNumber | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
    private _testPhoneNumbers?;
    get testPhoneNumbers(): {
        [key: string]: string;
    };
    set testPhoneNumbers(value: {
        [key: string]: string;
    });
    resetTestPhoneNumbers(): void;
    get testPhoneNumbersInput(): {
        [key: string]: string;
    } | undefined;
}
export interface IdentityPlatformConfigSignIn {
    /**
    * Whether to allow more than one account to have the same email.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#allow_duplicate_emails IdentityPlatformConfig#allow_duplicate_emails}
    */
    readonly allowDuplicateEmails?: boolean | cdktf.IResolvable;
    /**
    * anonymous block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#anonymous IdentityPlatformConfig#anonymous}
    */
    readonly anonymous?: IdentityPlatformConfigSignInAnonymous;
    /**
    * email block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#email IdentityPlatformConfig#email}
    */
    readonly email?: IdentityPlatformConfigSignInEmail;
    /**
    * phone_number block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#phone_number IdentityPlatformConfig#phone_number}
    */
    readonly phoneNumber?: IdentityPlatformConfigSignInPhoneNumber;
}
export declare function identityPlatformConfigSignInToTerraform(struct?: IdentityPlatformConfigSignInOutputReference | IdentityPlatformConfigSignIn): any;
export declare function identityPlatformConfigSignInToHclTerraform(struct?: IdentityPlatformConfigSignInOutputReference | IdentityPlatformConfigSignIn): any;
export declare class IdentityPlatformConfigSignInOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): IdentityPlatformConfigSignIn | undefined;
    set internalValue(value: IdentityPlatformConfigSignIn | undefined);
    private _allowDuplicateEmails?;
    get allowDuplicateEmails(): boolean | cdktf.IResolvable;
    set allowDuplicateEmails(value: boolean | cdktf.IResolvable);
    resetAllowDuplicateEmails(): void;
    get allowDuplicateEmailsInput(): boolean | cdktf.IResolvable | undefined;
    private _hashConfig;
    get hashConfig(): IdentityPlatformConfigSignInHashConfigList;
    private _anonymous;
    get anonymous(): IdentityPlatformConfigSignInAnonymousOutputReference;
    putAnonymous(value: IdentityPlatformConfigSignInAnonymous): void;
    resetAnonymous(): void;
    get anonymousInput(): IdentityPlatformConfigSignInAnonymous | undefined;
    private _email;
    get email(): IdentityPlatformConfigSignInEmailOutputReference;
    putEmail(value: IdentityPlatformConfigSignInEmail): void;
    resetEmail(): void;
    get emailInput(): IdentityPlatformConfigSignInEmail | undefined;
    private _phoneNumber;
    get phoneNumber(): IdentityPlatformConfigSignInPhoneNumberOutputReference;
    putPhoneNumber(value: IdentityPlatformConfigSignInPhoneNumber): void;
    resetPhoneNumber(): void;
    get phoneNumberInput(): IdentityPlatformConfigSignInPhoneNumber | undefined;
}
export interface IdentityPlatformConfigSmsRegionConfigAllowByDefault {
    /**
    * Two letter unicode region codes to disallow as defined by https://cldr.unicode.org/ The full list of these region codes is here: https://github.com/unicode-cldr/cldr-localenames-full/blob/master/main/en/territories.json
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#disallowed_regions IdentityPlatformConfig#disallowed_regions}
    */
    readonly disallowedRegions?: string[];
}
export declare function identityPlatformConfigSmsRegionConfigAllowByDefaultToTerraform(struct?: IdentityPlatformConfigSmsRegionConfigAllowByDefaultOutputReference | IdentityPlatformConfigSmsRegionConfigAllowByDefault): any;
export declare function identityPlatformConfigSmsRegionConfigAllowByDefaultToHclTerraform(struct?: IdentityPlatformConfigSmsRegionConfigAllowByDefaultOutputReference | IdentityPlatformConfigSmsRegionConfigAllowByDefault): any;
export declare class IdentityPlatformConfigSmsRegionConfigAllowByDefaultOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): IdentityPlatformConfigSmsRegionConfigAllowByDefault | undefined;
    set internalValue(value: IdentityPlatformConfigSmsRegionConfigAllowByDefault | undefined);
    private _disallowedRegions?;
    get disallowedRegions(): string[];
    set disallowedRegions(value: string[]);
    resetDisallowedRegions(): void;
    get disallowedRegionsInput(): string[] | undefined;
}
export interface IdentityPlatformConfigSmsRegionConfigAllowlistOnly {
    /**
    * Two letter unicode region codes to allow as defined by https://cldr.unicode.org/ The full list of these region codes is here: https://github.com/unicode-cldr/cldr-localenames-full/blob/master/main/en/territories.json
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#allowed_regions IdentityPlatformConfig#allowed_regions}
    */
    readonly allowedRegions?: string[];
}
export declare function identityPlatformConfigSmsRegionConfigAllowlistOnlyToTerraform(struct?: IdentityPlatformConfigSmsRegionConfigAllowlistOnlyOutputReference | IdentityPlatformConfigSmsRegionConfigAllowlistOnly): any;
export declare function identityPlatformConfigSmsRegionConfigAllowlistOnlyToHclTerraform(struct?: IdentityPlatformConfigSmsRegionConfigAllowlistOnlyOutputReference | IdentityPlatformConfigSmsRegionConfigAllowlistOnly): any;
export declare class IdentityPlatformConfigSmsRegionConfigAllowlistOnlyOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): IdentityPlatformConfigSmsRegionConfigAllowlistOnly | undefined;
    set internalValue(value: IdentityPlatformConfigSmsRegionConfigAllowlistOnly | undefined);
    private _allowedRegions?;
    get allowedRegions(): string[];
    set allowedRegions(value: string[]);
    resetAllowedRegions(): void;
    get allowedRegionsInput(): string[] | undefined;
}
export interface IdentityPlatformConfigSmsRegionConfig {
    /**
    * allow_by_default block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#allow_by_default IdentityPlatformConfig#allow_by_default}
    */
    readonly allowByDefault?: IdentityPlatformConfigSmsRegionConfigAllowByDefault;
    /**
    * allowlist_only block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#allowlist_only IdentityPlatformConfig#allowlist_only}
    */
    readonly allowlistOnly?: IdentityPlatformConfigSmsRegionConfigAllowlistOnly;
}
export declare function identityPlatformConfigSmsRegionConfigToTerraform(struct?: IdentityPlatformConfigSmsRegionConfigOutputReference | IdentityPlatformConfigSmsRegionConfig): any;
export declare function identityPlatformConfigSmsRegionConfigToHclTerraform(struct?: IdentityPlatformConfigSmsRegionConfigOutputReference | IdentityPlatformConfigSmsRegionConfig): any;
export declare class IdentityPlatformConfigSmsRegionConfigOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): IdentityPlatformConfigSmsRegionConfig | undefined;
    set internalValue(value: IdentityPlatformConfigSmsRegionConfig | undefined);
    private _allowByDefault;
    get allowByDefault(): IdentityPlatformConfigSmsRegionConfigAllowByDefaultOutputReference;
    putAllowByDefault(value: IdentityPlatformConfigSmsRegionConfigAllowByDefault): void;
    resetAllowByDefault(): void;
    get allowByDefaultInput(): IdentityPlatformConfigSmsRegionConfigAllowByDefault | undefined;
    private _allowlistOnly;
    get allowlistOnly(): IdentityPlatformConfigSmsRegionConfigAllowlistOnlyOutputReference;
    putAllowlistOnly(value: IdentityPlatformConfigSmsRegionConfigAllowlistOnly): void;
    resetAllowlistOnly(): void;
    get allowlistOnlyInput(): IdentityPlatformConfigSmsRegionConfigAllowlistOnly | undefined;
}
export interface IdentityPlatformConfigTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#create IdentityPlatformConfig#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#delete IdentityPlatformConfig#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#update IdentityPlatformConfig#update}
    */
    readonly update?: string;
}
export declare function identityPlatformConfigTimeoutsToTerraform(struct?: IdentityPlatformConfigTimeouts | cdktf.IResolvable): any;
export declare function identityPlatformConfigTimeoutsToHclTerraform(struct?: IdentityPlatformConfigTimeouts | cdktf.IResolvable): any;
export declare class IdentityPlatformConfigTimeoutsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): IdentityPlatformConfigTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: IdentityPlatformConfigTimeouts | cdktf.IResolvable | undefined);
    private _create?;
    get create(): string;
    set create(value: string);
    resetCreate(): void;
    get createInput(): string | undefined;
    private _delete?;
    get delete(): string;
    set delete(value: string);
    resetDelete(): void;
    get deleteInput(): string | undefined;
    private _update?;
    get update(): string;
    set update(value: string);
    resetUpdate(): void;
    get updateInput(): string | undefined;
}
/**
* Represents a {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config google_identity_platform_config}
*/
export declare class IdentityPlatformConfig extends cdktf.TerraformResource {
    static readonly tfResourceType = "google_identity_platform_config";
    /**
    * Generates CDKTF code for importing a IdentityPlatformConfig 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 IdentityPlatformConfig to import
    * @param importFromId The id of the existing IdentityPlatformConfig that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.29.0/docs/resources/identity_platform_config#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the IdentityPlatformConfig 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/google/6.29.0/docs/resources/identity_platform_config google_identity_platform_config} 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 IdentityPlatformConfigConfig = {}
    */
    constructor(scope: Construct, id: string, config?: IdentityPlatformConfigConfig);
    private _authorizedDomains?;
    get authorizedDomains(): string[];
    set authorizedDomains(value: string[]);
    resetAuthorizedDomains(): void;
    get authorizedDomainsInput(): string[] | undefined;
    private _autodeleteAnonymousUsers?;
    get autodeleteAnonymousUsers(): boolean | cdktf.IResolvable;
    set autodeleteAnonymousUsers(value: boolean | cdktf.IResolvable);
    resetAutodeleteAnonymousUsers(): void;
    get autodeleteAnonymousUsersInput(): boolean | cdktf.IResolvable | undefined;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    get name(): string;
    private _project?;
    get project(): string;
    set project(value: string);
    resetProject(): void;
    get projectInput(): string | undefined;
    private _blockingFunctions;
    get blockingFunctions(): IdentityPlatformConfigBlockingFunctionsOutputReference;
    putBlockingFunctions(value: IdentityPlatformConfigBlockingFunctions): void;
    resetBlockingFunctions(): void;
    get blockingFunctionsInput(): IdentityPlatformConfigBlockingFunctions | undefined;
    private _client;
    get client(): IdentityPlatformConfigClientOutputReference;
    putClient(value: IdentityPlatformConfigClient): void;
    resetClient(): void;
    get clientInput(): IdentityPlatformConfigClient | undefined;
    private _mfa;
    get mfa(): IdentityPlatformConfigMfaOutputReference;
    putMfa(value: IdentityPlatformConfigMfa): void;
    resetMfa(): void;
    get mfaInput(): IdentityPlatformConfigMfa | undefined;
    private _monitoring;
    get monitoring(): IdentityPlatformConfigMonitoringOutputReference;
    putMonitoring(value: IdentityPlatformConfigMonitoring): void;
    resetMonitoring(): void;
    get monitoringInput(): IdentityPlatformConfigMonitoring | undefined;
    private _multiTenant;
    get multiTenant(): IdentityPlatformConfigMultiTenantOutputReference;
    putMultiTenant(value: IdentityPlatformConfigMultiTenant): void;
    resetMultiTenant(): void;
    get multiTenantInput(): IdentityPlatformConfigMultiTenant | undefined;
    private _quota;
    get quota(): IdentityPlatformConfigQuotaOutputReference;
    putQuota(value: IdentityPlatformConfigQuota): void;
    resetQuota(): void;
    get quotaInput(): IdentityPlatformConfigQuota | undefined;
    private _signIn;
    get signIn(): IdentityPlatformConfigSignInOutputReference;
    putSignIn(value: IdentityPlatformConfigSignIn): void;
    resetSignIn(): void;
    get signInInput(): IdentityPlatformConfigSignIn | undefined;
    private _smsRegionConfig;
    get smsRegionConfig(): IdentityPlatformConfigSmsRegionConfigOutputReference;
    putSmsRegionConfig(value: IdentityPlatformConfigSmsRegionConfig): void;
    resetSmsRegionConfig(): void;
    get smsRegionConfigInput(): IdentityPlatformConfigSmsRegionConfig | undefined;
    private _timeouts;
    get timeouts(): IdentityPlatformConfigTimeoutsOutputReference;
    putTimeouts(value: IdentityPlatformConfigTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | IdentityPlatformConfigTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
