import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface IdentityDomainsPasswordPolicyConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#allowed_chars IdentityDomainsPasswordPolicy#allowed_chars}
    */
    readonly allowedChars?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#attribute_sets IdentityDomainsPasswordPolicy#attribute_sets}
    */
    readonly attributeSets?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#attributes IdentityDomainsPasswordPolicy#attributes}
    */
    readonly attributes?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#authorization IdentityDomainsPasswordPolicy#authorization}
    */
    readonly authorization?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#description IdentityDomainsPasswordPolicy#description}
    */
    readonly description?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#dictionary_delimiter IdentityDomainsPasswordPolicy#dictionary_delimiter}
    */
    readonly dictionaryDelimiter?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#dictionary_location IdentityDomainsPasswordPolicy#dictionary_location}
    */
    readonly dictionaryLocation?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#dictionary_word_disallowed IdentityDomainsPasswordPolicy#dictionary_word_disallowed}
    */
    readonly dictionaryWordDisallowed?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#disallowed_chars IdentityDomainsPasswordPolicy#disallowed_chars}
    */
    readonly disallowedChars?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#disallowed_substrings IdentityDomainsPasswordPolicy#disallowed_substrings}
    */
    readonly disallowedSubstrings?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#disallowed_user_attribute_values IdentityDomainsPasswordPolicy#disallowed_user_attribute_values}
    */
    readonly disallowedUserAttributeValues?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#distinct_characters IdentityDomainsPasswordPolicy#distinct_characters}
    */
    readonly distinctCharacters?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#external_id IdentityDomainsPasswordPolicy#external_id}
    */
    readonly externalId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#first_name_disallowed IdentityDomainsPasswordPolicy#first_name_disallowed}
    */
    readonly firstNameDisallowed?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#force_password_reset IdentityDomainsPasswordPolicy#force_password_reset}
    */
    readonly forcePasswordReset?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#idcs_endpoint IdentityDomainsPasswordPolicy#idcs_endpoint}
    */
    readonly idcsEndpoint: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#last_name_disallowed IdentityDomainsPasswordPolicy#last_name_disallowed}
    */
    readonly lastNameDisallowed?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#lockout_duration IdentityDomainsPasswordPolicy#lockout_duration}
    */
    readonly lockoutDuration?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#max_incorrect_attempts IdentityDomainsPasswordPolicy#max_incorrect_attempts}
    */
    readonly maxIncorrectAttempts?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#max_length IdentityDomainsPasswordPolicy#max_length}
    */
    readonly maxLength?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#max_repeated_chars IdentityDomainsPasswordPolicy#max_repeated_chars}
    */
    readonly maxRepeatedChars?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#max_special_chars IdentityDomainsPasswordPolicy#max_special_chars}
    */
    readonly maxSpecialChars?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#min_alpha_numerals IdentityDomainsPasswordPolicy#min_alpha_numerals}
    */
    readonly minAlphaNumerals?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#min_alphas IdentityDomainsPasswordPolicy#min_alphas}
    */
    readonly minAlphas?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#min_length IdentityDomainsPasswordPolicy#min_length}
    */
    readonly minLength?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#min_lower_case IdentityDomainsPasswordPolicy#min_lower_case}
    */
    readonly minLowerCase?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#min_numerals IdentityDomainsPasswordPolicy#min_numerals}
    */
    readonly minNumerals?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#min_password_age IdentityDomainsPasswordPolicy#min_password_age}
    */
    readonly minPasswordAge?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#min_special_chars IdentityDomainsPasswordPolicy#min_special_chars}
    */
    readonly minSpecialChars?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#min_unique_chars IdentityDomainsPasswordPolicy#min_unique_chars}
    */
    readonly minUniqueChars?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#min_upper_case IdentityDomainsPasswordPolicy#min_upper_case}
    */
    readonly minUpperCase?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#name IdentityDomainsPasswordPolicy#name}
    */
    readonly name: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#num_passwords_in_history IdentityDomainsPasswordPolicy#num_passwords_in_history}
    */
    readonly numPasswordsInHistory?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#ocid IdentityDomainsPasswordPolicy#ocid}
    */
    readonly ocid?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#password_expire_warning IdentityDomainsPasswordPolicy#password_expire_warning}
    */
    readonly passwordExpireWarning?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#password_expires_after IdentityDomainsPasswordPolicy#password_expires_after}
    */
    readonly passwordExpiresAfter?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#password_strength IdentityDomainsPasswordPolicy#password_strength}
    */
    readonly passwordStrength?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#priority IdentityDomainsPasswordPolicy#priority}
    */
    readonly priority?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#required_chars IdentityDomainsPasswordPolicy#required_chars}
    */
    readonly requiredChars?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#resource_type_schema_version IdentityDomainsPasswordPolicy#resource_type_schema_version}
    */
    readonly resourceTypeSchemaVersion?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#schemas IdentityDomainsPasswordPolicy#schemas}
    */
    readonly schemas: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#starts_with_alphabet IdentityDomainsPasswordPolicy#starts_with_alphabet}
    */
    readonly startsWithAlphabet?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#user_name_disallowed IdentityDomainsPasswordPolicy#user_name_disallowed}
    */
    readonly userNameDisallowed?: boolean | cdktf.IResolvable;
    /**
    * groups block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#groups IdentityDomainsPasswordPolicy#groups}
    */
    readonly groups?: IdentityDomainsPasswordPolicyGroups[] | cdktf.IResolvable;
    /**
    * tags block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#tags IdentityDomainsPasswordPolicy#tags}
    */
    readonly tags?: IdentityDomainsPasswordPolicyTags[] | cdktf.IResolvable;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#timeouts IdentityDomainsPasswordPolicy#timeouts}
    */
    readonly timeouts?: IdentityDomainsPasswordPolicyTimeouts;
}
export interface IdentityDomainsPasswordPolicyConfiguredPasswordPolicyRules {
}
export declare function identityDomainsPasswordPolicyConfiguredPasswordPolicyRulesToTerraform(struct?: IdentityDomainsPasswordPolicyConfiguredPasswordPolicyRules): any;
export declare function identityDomainsPasswordPolicyConfiguredPasswordPolicyRulesToHclTerraform(struct?: IdentityDomainsPasswordPolicyConfiguredPasswordPolicyRules): any;
export declare class IdentityDomainsPasswordPolicyConfiguredPasswordPolicyRulesOutputReference 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(): IdentityDomainsPasswordPolicyConfiguredPasswordPolicyRules | undefined;
    set internalValue(value: IdentityDomainsPasswordPolicyConfiguredPasswordPolicyRules | undefined);
    get key(): string;
    get value(): string;
}
export declare class IdentityDomainsPasswordPolicyConfiguredPasswordPolicyRulesList 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): IdentityDomainsPasswordPolicyConfiguredPasswordPolicyRulesOutputReference;
}
export interface IdentityDomainsPasswordPolicyIdcsCreatedBy {
}
export declare function identityDomainsPasswordPolicyIdcsCreatedByToTerraform(struct?: IdentityDomainsPasswordPolicyIdcsCreatedBy): any;
export declare function identityDomainsPasswordPolicyIdcsCreatedByToHclTerraform(struct?: IdentityDomainsPasswordPolicyIdcsCreatedBy): any;
export declare class IdentityDomainsPasswordPolicyIdcsCreatedByOutputReference 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(): IdentityDomainsPasswordPolicyIdcsCreatedBy | undefined;
    set internalValue(value: IdentityDomainsPasswordPolicyIdcsCreatedBy | undefined);
    get display(): string;
    get ocid(): string;
    get ref(): string;
    get type(): string;
    get value(): string;
}
export declare class IdentityDomainsPasswordPolicyIdcsCreatedByList 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): IdentityDomainsPasswordPolicyIdcsCreatedByOutputReference;
}
export interface IdentityDomainsPasswordPolicyIdcsLastModifiedBy {
}
export declare function identityDomainsPasswordPolicyIdcsLastModifiedByToTerraform(struct?: IdentityDomainsPasswordPolicyIdcsLastModifiedBy): any;
export declare function identityDomainsPasswordPolicyIdcsLastModifiedByToHclTerraform(struct?: IdentityDomainsPasswordPolicyIdcsLastModifiedBy): any;
export declare class IdentityDomainsPasswordPolicyIdcsLastModifiedByOutputReference 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(): IdentityDomainsPasswordPolicyIdcsLastModifiedBy | undefined;
    set internalValue(value: IdentityDomainsPasswordPolicyIdcsLastModifiedBy | undefined);
    get display(): string;
    get ocid(): string;
    get ref(): string;
    get type(): string;
    get value(): string;
}
export declare class IdentityDomainsPasswordPolicyIdcsLastModifiedByList 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): IdentityDomainsPasswordPolicyIdcsLastModifiedByOutputReference;
}
export interface IdentityDomainsPasswordPolicyMeta {
}
export declare function identityDomainsPasswordPolicyMetaToTerraform(struct?: IdentityDomainsPasswordPolicyMeta): any;
export declare function identityDomainsPasswordPolicyMetaToHclTerraform(struct?: IdentityDomainsPasswordPolicyMeta): any;
export declare class IdentityDomainsPasswordPolicyMetaOutputReference 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(): IdentityDomainsPasswordPolicyMeta | undefined;
    set internalValue(value: IdentityDomainsPasswordPolicyMeta | undefined);
    get created(): string;
    get lastModified(): string;
    get location(): string;
    get resourceType(): string;
    get version(): string;
}
export declare class IdentityDomainsPasswordPolicyMetaList 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): IdentityDomainsPasswordPolicyMetaOutputReference;
}
export interface IdentityDomainsPasswordPolicyGroups {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#value IdentityDomainsPasswordPolicy#value}
    */
    readonly value: string;
}
export declare function identityDomainsPasswordPolicyGroupsToTerraform(struct?: IdentityDomainsPasswordPolicyGroups | cdktf.IResolvable): any;
export declare function identityDomainsPasswordPolicyGroupsToHclTerraform(struct?: IdentityDomainsPasswordPolicyGroups | cdktf.IResolvable): any;
export declare class IdentityDomainsPasswordPolicyGroupsOutputReference 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(): IdentityDomainsPasswordPolicyGroups | cdktf.IResolvable | undefined;
    set internalValue(value: IdentityDomainsPasswordPolicyGroups | cdktf.IResolvable | undefined);
    get display(): string;
    get ref(): string;
    private _value?;
    get value(): string;
    set value(value: string);
    get valueInput(): string | undefined;
}
export declare class IdentityDomainsPasswordPolicyGroupsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: IdentityDomainsPasswordPolicyGroups[] | 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): IdentityDomainsPasswordPolicyGroupsOutputReference;
}
export interface IdentityDomainsPasswordPolicyTags {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#key IdentityDomainsPasswordPolicy#key}
    */
    readonly key: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#value IdentityDomainsPasswordPolicy#value}
    */
    readonly value: string;
}
export declare function identityDomainsPasswordPolicyTagsToTerraform(struct?: IdentityDomainsPasswordPolicyTags | cdktf.IResolvable): any;
export declare function identityDomainsPasswordPolicyTagsToHclTerraform(struct?: IdentityDomainsPasswordPolicyTags | cdktf.IResolvable): any;
export declare class IdentityDomainsPasswordPolicyTagsOutputReference 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(): IdentityDomainsPasswordPolicyTags | cdktf.IResolvable | undefined;
    set internalValue(value: IdentityDomainsPasswordPolicyTags | cdktf.IResolvable | undefined);
    private _key?;
    get key(): string;
    set key(value: string);
    get keyInput(): string | undefined;
    private _value?;
    get value(): string;
    set value(value: string);
    get valueInput(): string | undefined;
}
export declare class IdentityDomainsPasswordPolicyTagsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: IdentityDomainsPasswordPolicyTags[] | 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): IdentityDomainsPasswordPolicyTagsOutputReference;
}
export interface IdentityDomainsPasswordPolicyTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#create IdentityDomainsPasswordPolicy#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#delete IdentityDomainsPasswordPolicy#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#update IdentityDomainsPasswordPolicy#update}
    */
    readonly update?: string;
}
export declare function identityDomainsPasswordPolicyTimeoutsToTerraform(struct?: IdentityDomainsPasswordPolicyTimeouts | cdktf.IResolvable): any;
export declare function identityDomainsPasswordPolicyTimeoutsToHclTerraform(struct?: IdentityDomainsPasswordPolicyTimeouts | cdktf.IResolvable): any;
export declare class IdentityDomainsPasswordPolicyTimeoutsOutputReference 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(): IdentityDomainsPasswordPolicyTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: IdentityDomainsPasswordPolicyTimeouts | 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/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy oci_identity_domains_password_policy}
*/
export declare class IdentityDomainsPasswordPolicy extends cdktf.TerraformResource {
    static readonly tfResourceType = "oci_identity_domains_password_policy";
    /**
    * Generates CDKTF code for importing a IdentityDomainsPasswordPolicy 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 IdentityDomainsPasswordPolicy to import
    * @param importFromId The id of the existing IdentityDomainsPasswordPolicy that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the IdentityDomainsPasswordPolicy 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/oracle/oci/6.18.0/docs/resources/identity_domains_password_policy oci_identity_domains_password_policy} 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 IdentityDomainsPasswordPolicyConfig
    */
    constructor(scope: Construct, id: string, config: IdentityDomainsPasswordPolicyConfig);
    private _allowedChars?;
    get allowedChars(): string;
    set allowedChars(value: string);
    resetAllowedChars(): void;
    get allowedCharsInput(): string | undefined;
    private _attributeSets?;
    get attributeSets(): string[];
    set attributeSets(value: string[]);
    resetAttributeSets(): void;
    get attributeSetsInput(): string[] | undefined;
    private _attributes?;
    get attributes(): string;
    set attributes(value: string);
    resetAttributes(): void;
    get attributesInput(): string | undefined;
    private _authorization?;
    get authorization(): string;
    set authorization(value: string);
    resetAuthorization(): void;
    get authorizationInput(): string | undefined;
    get compartmentOcid(): string;
    private _configuredPasswordPolicyRules;
    get configuredPasswordPolicyRules(): IdentityDomainsPasswordPolicyConfiguredPasswordPolicyRulesList;
    get deleteInProgress(): cdktf.IResolvable;
    private _description?;
    get description(): string;
    set description(value: string);
    resetDescription(): void;
    get descriptionInput(): string | undefined;
    private _dictionaryDelimiter?;
    get dictionaryDelimiter(): string;
    set dictionaryDelimiter(value: string);
    resetDictionaryDelimiter(): void;
    get dictionaryDelimiterInput(): string | undefined;
    private _dictionaryLocation?;
    get dictionaryLocation(): string;
    set dictionaryLocation(value: string);
    resetDictionaryLocation(): void;
    get dictionaryLocationInput(): string | undefined;
    private _dictionaryWordDisallowed?;
    get dictionaryWordDisallowed(): boolean | cdktf.IResolvable;
    set dictionaryWordDisallowed(value: boolean | cdktf.IResolvable);
    resetDictionaryWordDisallowed(): void;
    get dictionaryWordDisallowedInput(): boolean | cdktf.IResolvable | undefined;
    private _disallowedChars?;
    get disallowedChars(): string;
    set disallowedChars(value: string);
    resetDisallowedChars(): void;
    get disallowedCharsInput(): string | undefined;
    private _disallowedSubstrings?;
    get disallowedSubstrings(): string[];
    set disallowedSubstrings(value: string[]);
    resetDisallowedSubstrings(): void;
    get disallowedSubstringsInput(): string[] | undefined;
    private _disallowedUserAttributeValues?;
    get disallowedUserAttributeValues(): string[];
    set disallowedUserAttributeValues(value: string[]);
    resetDisallowedUserAttributeValues(): void;
    get disallowedUserAttributeValuesInput(): string[] | undefined;
    private _distinctCharacters?;
    get distinctCharacters(): number;
    set distinctCharacters(value: number);
    resetDistinctCharacters(): void;
    get distinctCharactersInput(): number | undefined;
    get domainOcid(): string;
    private _externalId?;
    get externalId(): string;
    set externalId(value: string);
    resetExternalId(): void;
    get externalIdInput(): string | undefined;
    private _firstNameDisallowed?;
    get firstNameDisallowed(): boolean | cdktf.IResolvable;
    set firstNameDisallowed(value: boolean | cdktf.IResolvable);
    resetFirstNameDisallowed(): void;
    get firstNameDisallowedInput(): boolean | cdktf.IResolvable | undefined;
    private _forcePasswordReset?;
    get forcePasswordReset(): boolean | cdktf.IResolvable;
    set forcePasswordReset(value: boolean | cdktf.IResolvable);
    resetForcePasswordReset(): void;
    get forcePasswordResetInput(): boolean | cdktf.IResolvable | undefined;
    get id(): string;
    private _idcsCreatedBy;
    get idcsCreatedBy(): IdentityDomainsPasswordPolicyIdcsCreatedByList;
    private _idcsEndpoint?;
    get idcsEndpoint(): string;
    set idcsEndpoint(value: string);
    get idcsEndpointInput(): string | undefined;
    private _idcsLastModifiedBy;
    get idcsLastModifiedBy(): IdentityDomainsPasswordPolicyIdcsLastModifiedByList;
    get idcsLastUpgradedInRelease(): string;
    get idcsPreventedOperations(): string[];
    private _lastNameDisallowed?;
    get lastNameDisallowed(): boolean | cdktf.IResolvable;
    set lastNameDisallowed(value: boolean | cdktf.IResolvable);
    resetLastNameDisallowed(): void;
    get lastNameDisallowedInput(): boolean | cdktf.IResolvable | undefined;
    private _lockoutDuration?;
    get lockoutDuration(): number;
    set lockoutDuration(value: number);
    resetLockoutDuration(): void;
    get lockoutDurationInput(): number | undefined;
    private _maxIncorrectAttempts?;
    get maxIncorrectAttempts(): number;
    set maxIncorrectAttempts(value: number);
    resetMaxIncorrectAttempts(): void;
    get maxIncorrectAttemptsInput(): number | undefined;
    private _maxLength?;
    get maxLength(): number;
    set maxLength(value: number);
    resetMaxLength(): void;
    get maxLengthInput(): number | undefined;
    private _maxRepeatedChars?;
    get maxRepeatedChars(): number;
    set maxRepeatedChars(value: number);
    resetMaxRepeatedChars(): void;
    get maxRepeatedCharsInput(): number | undefined;
    private _maxSpecialChars?;
    get maxSpecialChars(): number;
    set maxSpecialChars(value: number);
    resetMaxSpecialChars(): void;
    get maxSpecialCharsInput(): number | undefined;
    private _meta;
    get meta(): IdentityDomainsPasswordPolicyMetaList;
    private _minAlphaNumerals?;
    get minAlphaNumerals(): number;
    set minAlphaNumerals(value: number);
    resetMinAlphaNumerals(): void;
    get minAlphaNumeralsInput(): number | undefined;
    private _minAlphas?;
    get minAlphas(): number;
    set minAlphas(value: number);
    resetMinAlphas(): void;
    get minAlphasInput(): number | undefined;
    private _minLength?;
    get minLength(): number;
    set minLength(value: number);
    resetMinLength(): void;
    get minLengthInput(): number | undefined;
    private _minLowerCase?;
    get minLowerCase(): number;
    set minLowerCase(value: number);
    resetMinLowerCase(): void;
    get minLowerCaseInput(): number | undefined;
    private _minNumerals?;
    get minNumerals(): number;
    set minNumerals(value: number);
    resetMinNumerals(): void;
    get minNumeralsInput(): number | undefined;
    private _minPasswordAge?;
    get minPasswordAge(): number;
    set minPasswordAge(value: number);
    resetMinPasswordAge(): void;
    get minPasswordAgeInput(): number | undefined;
    private _minSpecialChars?;
    get minSpecialChars(): number;
    set minSpecialChars(value: number);
    resetMinSpecialChars(): void;
    get minSpecialCharsInput(): number | undefined;
    private _minUniqueChars?;
    get minUniqueChars(): number;
    set minUniqueChars(value: number);
    resetMinUniqueChars(): void;
    get minUniqueCharsInput(): number | undefined;
    private _minUpperCase?;
    get minUpperCase(): number;
    set minUpperCase(value: number);
    resetMinUpperCase(): void;
    get minUpperCaseInput(): number | undefined;
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
    private _numPasswordsInHistory?;
    get numPasswordsInHistory(): number;
    set numPasswordsInHistory(value: number);
    resetNumPasswordsInHistory(): void;
    get numPasswordsInHistoryInput(): number | undefined;
    private _ocid?;
    get ocid(): string;
    set ocid(value: string);
    resetOcid(): void;
    get ocidInput(): string | undefined;
    private _passwordExpireWarning?;
    get passwordExpireWarning(): number;
    set passwordExpireWarning(value: number);
    resetPasswordExpireWarning(): void;
    get passwordExpireWarningInput(): number | undefined;
    private _passwordExpiresAfter?;
    get passwordExpiresAfter(): number;
    set passwordExpiresAfter(value: number);
    resetPasswordExpiresAfter(): void;
    get passwordExpiresAfterInput(): number | undefined;
    private _passwordStrength?;
    get passwordStrength(): string;
    set passwordStrength(value: string);
    resetPasswordStrength(): void;
    get passwordStrengthInput(): string | undefined;
    private _priority?;
    get priority(): number;
    set priority(value: number);
    resetPriority(): void;
    get priorityInput(): number | undefined;
    private _requiredChars?;
    get requiredChars(): string;
    set requiredChars(value: string);
    resetRequiredChars(): void;
    get requiredCharsInput(): string | undefined;
    private _resourceTypeSchemaVersion?;
    get resourceTypeSchemaVersion(): string;
    set resourceTypeSchemaVersion(value: string);
    resetResourceTypeSchemaVersion(): void;
    get resourceTypeSchemaVersionInput(): string | undefined;
    private _schemas?;
    get schemas(): string[];
    set schemas(value: string[]);
    get schemasInput(): string[] | undefined;
    private _startsWithAlphabet?;
    get startsWithAlphabet(): boolean | cdktf.IResolvable;
    set startsWithAlphabet(value: boolean | cdktf.IResolvable);
    resetStartsWithAlphabet(): void;
    get startsWithAlphabetInput(): boolean | cdktf.IResolvable | undefined;
    get tenancyOcid(): string;
    private _userNameDisallowed?;
    get userNameDisallowed(): boolean | cdktf.IResolvable;
    set userNameDisallowed(value: boolean | cdktf.IResolvable);
    resetUserNameDisallowed(): void;
    get userNameDisallowedInput(): boolean | cdktf.IResolvable | undefined;
    private _groups;
    get groups(): IdentityDomainsPasswordPolicyGroupsList;
    putGroups(value: IdentityDomainsPasswordPolicyGroups[] | cdktf.IResolvable): void;
    resetGroups(): void;
    get groupsInput(): cdktf.IResolvable | IdentityDomainsPasswordPolicyGroups[] | undefined;
    private _tags;
    get tags(): IdentityDomainsPasswordPolicyTagsList;
    putTags(value: IdentityDomainsPasswordPolicyTags[] | cdktf.IResolvable): void;
    resetTags(): void;
    get tagsInput(): cdktf.IResolvable | IdentityDomainsPasswordPolicyTags[] | undefined;
    private _timeouts;
    get timeouts(): IdentityDomainsPasswordPolicyTimeoutsOutputReference;
    putTimeouts(value: IdentityDomainsPasswordPolicyTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | IdentityDomainsPasswordPolicyTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
