import type { NonEmptyString } from "../../../common/CustomTypes/NonEmptyString";
import type { NaturalNumber } from "../../../common/CustomTypes/Numerics";
import type { AwsResourceCommon, CloudFormationTags } from "../common";
import type { CloudFormationValue } from "../IntrinsicFunctions";
export declare type SecretType = 'AWS::SecretsManager::Secret';
export interface Secret extends AwsResourceCommon {
    Type: SecretType;
    Properties: SecretProperties;
}
export interface CommonSecretProperties {
    Description?: CloudFormationValue;
    KmsKeyId?: CloudFormationValue;
    Name?: NonEmptyString;
    ReplicaRegions?: object;
    Tags?: CloudFormationTags;
}
export interface SpecifiedSecretProperties extends CommonSecretProperties {
    SecretString: CloudFormationValue;
}
export interface GeneratedSecretProperties extends CommonSecretProperties {
    GenerateSecretString: GenerateSecretString;
}
export declare type SecretProperties = GeneratedSecretProperties | SpecifiedSecretProperties;
export interface CommonGenerateSecretString {
    ExcludeCharacters?: string;
    ExcludeLowercase?: boolean;
    ExcludeNumbers?: boolean;
    ExcludePunctuation?: boolean;
    ExcludeUppercase?: boolean;
    IncludeSpace?: boolean;
    PasswordLength?: NaturalNumber;
    RequireEachIncludedType?: boolean;
}
export interface GenerateJsonSecretStringProperties extends CommonGenerateSecretString {
    GenerateStringKey: string;
    SecretStringTemplate: string;
}
export interface GenerateTextSecretStringProperties extends CommonGenerateSecretString {
}
export declare type GenerateSecretString = GenerateJsonSecretStringProperties | GenerateTextSecretStringProperties;
