import { ResourceBase } from "../../resource";
import { Value, List, MapOf } from "../../data-types";
export declare class PasswordPolicy {
    RequireNumbers?: Value<boolean>;
    MinimumLength?: Value<number>;
    TemporaryPasswordValidityDays?: Value<number>;
    RequireUppercase?: Value<boolean>;
    RequireLowercase?: Value<boolean>;
    RequireSymbols?: Value<boolean>;
    constructor(properties: PasswordPolicy);
}
export declare class AccountRecoverySetting {
    RecoveryMechanisms?: List<RecoveryOption>;
    constructor(properties: AccountRecoverySetting);
}
export declare class Policies {
    PasswordPolicy?: PasswordPolicy;
    constructor(properties: Policies);
}
export declare class AdminCreateUserConfig {
    InviteMessageTemplate?: InviteMessageTemplate;
    UnusedAccountValidityDays?: Value<number>;
    AllowAdminCreateUserOnly?: Value<boolean>;
    constructor(properties: AdminCreateUserConfig);
}
export declare class InviteMessageTemplate {
    EmailMessage?: Value<string>;
    SMSMessage?: Value<string>;
    EmailSubject?: Value<string>;
    constructor(properties: InviteMessageTemplate);
}
export declare class SchemaAttribute {
    DeveloperOnlyAttribute?: Value<boolean>;
    Mutable?: Value<boolean>;
    AttributeDataType?: Value<string>;
    StringAttributeConstraints?: StringAttributeConstraints;
    Required?: Value<boolean>;
    NumberAttributeConstraints?: NumberAttributeConstraints;
    Name?: Value<string>;
    constructor(properties: SchemaAttribute);
}
export declare class DeviceConfiguration {
    DeviceOnlyRememberedOnUserPrompt?: Value<boolean>;
    ChallengeRequiredOnNewDevice?: Value<boolean>;
    constructor(properties: DeviceConfiguration);
}
export declare class UserPoolAddOns {
    AdvancedSecurityMode?: Value<string>;
    constructor(properties: UserPoolAddOns);
}
export declare class UsernameConfiguration {
    CaseSensitive?: Value<boolean>;
    constructor(properties: UsernameConfiguration);
}
export declare class EmailConfiguration {
    ReplyToEmailAddress?: Value<string>;
    ConfigurationSet?: Value<string>;
    EmailSendingAccount?: Value<string>;
    SourceArn?: Value<string>;
    From?: Value<string>;
    constructor(properties: EmailConfiguration);
}
export declare class SmsConfiguration {
    ExternalId?: Value<string>;
    SnsCallerArn?: Value<string>;
    constructor(properties: SmsConfiguration);
}
export declare class VerificationMessageTemplate {
    EmailMessageByLink?: Value<string>;
    EmailMessage?: Value<string>;
    SmsMessage?: Value<string>;
    EmailSubject?: Value<string>;
    DefaultEmailOption?: Value<string>;
    EmailSubjectByLink?: Value<string>;
    constructor(properties: VerificationMessageTemplate);
}
export declare class NumberAttributeConstraints {
    MinValue?: Value<string>;
    MaxValue?: Value<string>;
    constructor(properties: NumberAttributeConstraints);
}
export declare class LambdaConfig {
    DefineAuthChallenge?: Value<string>;
    UserMigration?: Value<string>;
    VerifyAuthChallengeResponse?: Value<string>;
    PreTokenGeneration?: Value<string>;
    PostConfirmation?: Value<string>;
    CustomMessage?: Value<string>;
    PostAuthentication?: Value<string>;
    PreSignUp?: Value<string>;
    PreAuthentication?: Value<string>;
    CreateAuthChallenge?: Value<string>;
    constructor(properties: LambdaConfig);
}
export declare class RecoveryOption {
    Priority?: Value<number>;
    Name?: Value<string>;
    constructor(properties: RecoveryOption);
}
export declare class StringAttributeConstraints {
    MinLength?: Value<string>;
    MaxLength?: Value<string>;
    constructor(properties: StringAttributeConstraints);
}
export interface UserPoolProperties {
    DeviceConfiguration?: DeviceConfiguration;
    UserPoolTags?: MapOf<any>;
    UsernameConfiguration?: UsernameConfiguration;
    Schema?: List<SchemaAttribute>;
    VerificationMessageTemplate?: VerificationMessageTemplate;
    AliasAttributes?: List<Value<string>>;
    LambdaConfig?: LambdaConfig;
    EnabledMfas?: List<Value<string>>;
    UsernameAttributes?: List<Value<string>>;
    MfaConfiguration?: Value<string>;
    AutoVerifiedAttributes?: List<Value<string>>;
    AccountRecoverySetting?: AccountRecoverySetting;
    EmailVerificationMessage?: Value<string>;
    Policies?: Policies;
    UserPoolName?: Value<string>;
    SmsVerificationMessage?: Value<string>;
    EmailVerificationSubject?: Value<string>;
    SmsAuthenticationMessage?: Value<string>;
    AdminCreateUserConfig?: AdminCreateUserConfig;
    EmailConfiguration?: EmailConfiguration;
    UserPoolAddOns?: UserPoolAddOns;
    SmsConfiguration?: SmsConfiguration;
}
export default class Inner_UserPool extends ResourceBase<UserPoolProperties> {
    static PasswordPolicy: typeof PasswordPolicy;
    static AccountRecoverySetting: typeof AccountRecoverySetting;
    static Policies: typeof Policies;
    static AdminCreateUserConfig: typeof AdminCreateUserConfig;
    static InviteMessageTemplate: typeof InviteMessageTemplate;
    static SchemaAttribute: typeof SchemaAttribute;
    static DeviceConfiguration: typeof DeviceConfiguration;
    static UserPoolAddOns: typeof UserPoolAddOns;
    static UsernameConfiguration: typeof UsernameConfiguration;
    static EmailConfiguration: typeof EmailConfiguration;
    static SmsConfiguration: typeof SmsConfiguration;
    static VerificationMessageTemplate: typeof VerificationMessageTemplate;
    static NumberAttributeConstraints: typeof NumberAttributeConstraints;
    static LambdaConfig: typeof LambdaConfig;
    static RecoveryOption: typeof RecoveryOption;
    static StringAttributeConstraints: typeof StringAttributeConstraints;
    constructor(properties: UserPoolProperties);
}
