import * as core from "@terrascript/core";
export interface CrlConfigurationArgs extends core.SchemaArgs {
    customCname?: string | core.StringOut;
    enabled?: boolean | core.BooleanOut;
    expirationInDays: number | core.NumberOut;
    s3BucketName?: string | core.StringOut;
    s3ObjectAcl?: string | core.StringOut;
}
export declare class CrlConfiguration extends core.Schema<CrlConfigurationArgs> {
    customCname?: string | core.StringOut;
    enabled?: boolean | core.BooleanOut;
    expirationInDays: number | core.NumberOut;
    s3BucketName?: string | core.StringOut;
    s3ObjectAcl?: string | core.StringOut;
}
export interface OcspConfigurationArgs extends core.SchemaArgs {
    enabled: boolean | core.BooleanOut;
    ocspCustomCname?: string | core.StringOut;
}
export declare class OcspConfiguration extends core.Schema<OcspConfigurationArgs> {
    enabled: boolean | core.BooleanOut;
    ocspCustomCname?: string | core.StringOut;
}
export interface RevocationConfigurationArgs extends core.SchemaArgs {
    crlConfiguration?: CrlConfiguration;
    ocspConfiguration?: OcspConfiguration;
}
export declare class RevocationConfiguration extends core.Schema<RevocationConfigurationArgs> {
    crlConfiguration?: CrlConfiguration;
    ocspConfiguration?: OcspConfiguration;
}
export interface SubjectArgs extends core.SchemaArgs {
    commonName?: string | core.StringOut;
    country?: string | core.StringOut;
    distinguishedNameQualifier?: string | core.StringOut;
    generationQualifier?: string | core.StringOut;
    givenName?: string | core.StringOut;
    initials?: string | core.StringOut;
    locality?: string | core.StringOut;
    organization?: string | core.StringOut;
    organizationalUnit?: string | core.StringOut;
    pseudonym?: string | core.StringOut;
    state?: string | core.StringOut;
    surname?: string | core.StringOut;
    title?: string | core.StringOut;
}
export declare class Subject extends core.Schema<SubjectArgs> {
    commonName?: string | core.StringOut;
    country?: string | core.StringOut;
    distinguishedNameQualifier?: string | core.StringOut;
    generationQualifier?: string | core.StringOut;
    givenName?: string | core.StringOut;
    initials?: string | core.StringOut;
    locality?: string | core.StringOut;
    organization?: string | core.StringOut;
    organizationalUnit?: string | core.StringOut;
    pseudonym?: string | core.StringOut;
    state?: string | core.StringOut;
    surname?: string | core.StringOut;
    title?: string | core.StringOut;
}
export interface CertificateAuthorityConfigurationArgs extends core.SchemaArgs {
    keyAlgorithm: string | core.StringOut;
    signingAlgorithm: string | core.StringOut;
    subject: Subject;
}
export declare class CertificateAuthorityConfiguration extends core.Schema<CertificateAuthorityConfigurationArgs> {
    keyAlgorithm: string | core.StringOut;
    signingAlgorithm: string | core.StringOut;
    subject: Subject;
}
export interface CertificateAuthorityArgs extends core.ResourceArgs {
    certificateAuthorityConfiguration: CertificateAuthorityConfiguration;
    enabled?: boolean | core.BooleanOut;
    permanentDeletionTimeInDays?: number | core.NumberOut;
    revocationConfiguration?: RevocationConfiguration;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    type?: string | core.StringOut;
}
export declare class CertificateAuthority extends core.Resource<CertificateAuthorityArgs> {
    arn: string | core.StringOut;
    certificate: string | core.StringOut;
    certificateAuthorityConfiguration: CertificateAuthorityConfiguration;
    certificateChain: string | core.StringOut;
    certificateSigningRequest: string | core.StringOut;
    enabled?: boolean | core.BooleanOut;
    id: string | core.StringOut;
    notAfter: string | core.StringOut;
    notBefore: string | core.StringOut;
    permanentDeletionTimeInDays?: number | core.NumberOut;
    revocationConfiguration?: RevocationConfiguration;
    serial: string | core.StringOut;
    status: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    type?: string | core.StringOut;
    constructor(name: string, args?: CertificateAuthorityArgs);
    getNamespace(): string;
}
//# sourceMappingURL=certificate_authority.d.ts.map