import * as HttpClient from "effect/unstable/http/HttpClient";
import * as S from "effect/Schema";
import * as stream from "effect/Stream";
import * as API from "../client/api.ts";
import type { Credentials } from "../credentials.ts";
import type { CommonErrors } from "../errors.ts";
import type { Region } from "../region.ts";
export type DirectoryId = string;
export type CertificateAuthorityArn = string;
export type SecurityGroupId = string;
export type ClientToken = string;
export type ConnectorArn = string;
export type MaxResults = number;
export type NextToken = string;
export type DirectoryRegistrationArn = string;
export type TemplateArn = string;
export type GroupSecurityIdentifier = string;
export type DisplayName = string;
export type TemplateName = string;
export type CustomObjectIdentifier = string;
export interface ListTagsForResourceRequest {
    ResourceArn: string;
}
export declare const ListTagsForResourceRequest: S.Schema<ListTagsForResourceRequest>;
export type Tags = {
    [key: string]: string | undefined;
};
export declare const Tags: S.$Record<S.String, S.optional<S.String>>;
export interface ListTagsForResourceResponse {
    Tags?: {
        [key: string]: string | undefined;
    };
}
export declare const ListTagsForResourceResponse: S.Schema<ListTagsForResourceResponse>;
export type ValidationExceptionReason = "FIELD_VALIDATION_FAILED" | "INVALID_CA_SUBJECT" | "INVALID_PERMISSION" | "INVALID_STATE" | "MISMATCHED_CONNECTOR" | "MISMATCHED_VPC" | "NO_CLIENT_TOKEN" | "UNKNOWN_OPERATION" | "OTHER" | (string & {});
export declare const ValidationExceptionReason: S.String;
export interface TagResourceRequest {
    ResourceArn: string;
    Tags: {
        [key: string]: string | undefined;
    };
}
export declare const TagResourceRequest: S.Schema<TagResourceRequest>;
export interface TagResourceResponse {
}
export declare const TagResourceResponse: S.Schema<TagResourceResponse>;
export type TagKeyList = string[];
export declare const TagKeyList: S.$Array<S.String>;
export interface UntagResourceRequest {
    ResourceArn: string;
    TagKeys: string[];
}
export declare const UntagResourceRequest: S.Schema<UntagResourceRequest>;
export interface UntagResourceResponse {
}
export declare const UntagResourceResponse: S.Schema<UntagResourceResponse>;
export type IpAddressType = "IPV4" | "DUALSTACK" | (string & {});
export declare const IpAddressType: S.String;
export type SecurityGroupIdList = string[];
export declare const SecurityGroupIdList: S.$Array<S.String>;
export interface VpcInformation {
    IpAddressType?: IpAddressType;
    SecurityGroupIds: string[];
}
export declare const VpcInformation: S.Schema<VpcInformation>;
export interface CreateConnectorRequest {
    DirectoryId: string;
    CertificateAuthorityArn: string;
    VpcInformation: VpcInformation;
    ClientToken?: string;
    Tags?: {
        [key: string]: string | undefined;
    };
}
export declare const CreateConnectorRequest: S.Schema<CreateConnectorRequest>;
export interface CreateConnectorResponse {
    ConnectorArn?: string;
}
export declare const CreateConnectorResponse: S.Schema<CreateConnectorResponse>;
export interface GetConnectorRequest {
    ConnectorArn: string;
}
export declare const GetConnectorRequest: S.Schema<GetConnectorRequest>;
export type ConnectorStatus = "CREATING" | "ACTIVE" | "DELETING" | "FAILED" | (string & {});
export declare const ConnectorStatus: S.String;
export type ConnectorStatusReason = "CA_CERTIFICATE_REGISTRATION_FAILED" | "DIRECTORY_ACCESS_DENIED" | "INTERNAL_FAILURE" | "INSUFFICIENT_FREE_ADDRESSES" | "INVALID_SUBNET_IP_PROTOCOL" | "PRIVATECA_ACCESS_DENIED" | "PRIVATECA_RESOURCE_NOT_FOUND" | "SECURITY_GROUP_NOT_IN_VPC" | "VPC_ACCESS_DENIED" | "VPC_ENDPOINT_LIMIT_EXCEEDED" | "VPC_RESOURCE_NOT_FOUND" | (string & {});
export declare const ConnectorStatusReason: S.String;
export interface Connector {
    Arn?: string;
    CertificateAuthorityArn?: string;
    CertificateEnrollmentPolicyServerEndpoint?: string;
    DirectoryId?: string;
    VpcInformation?: VpcInformation;
    Status?: ConnectorStatus;
    StatusReason?: ConnectorStatusReason;
    CreatedAt?: Date;
    UpdatedAt?: Date;
}
export declare const Connector: S.Schema<Connector>;
export interface GetConnectorResponse {
    Connector?: Connector;
}
export declare const GetConnectorResponse: S.Schema<GetConnectorResponse>;
export interface DeleteConnectorRequest {
    ConnectorArn: string;
}
export declare const DeleteConnectorRequest: S.Schema<DeleteConnectorRequest>;
export interface DeleteConnectorResponse {
}
export declare const DeleteConnectorResponse: S.Schema<DeleteConnectorResponse>;
export interface ListConnectorsRequest {
    MaxResults?: number;
    NextToken?: string;
}
export declare const ListConnectorsRequest: S.Schema<ListConnectorsRequest>;
export interface ConnectorSummary {
    Arn?: string;
    CertificateAuthorityArn?: string;
    CertificateEnrollmentPolicyServerEndpoint?: string;
    DirectoryId?: string;
    VpcInformation?: VpcInformation;
    Status?: ConnectorStatus;
    StatusReason?: ConnectorStatusReason;
    CreatedAt?: Date;
    UpdatedAt?: Date;
}
export declare const ConnectorSummary: S.Schema<ConnectorSummary>;
export type ConnectorList = ConnectorSummary[];
export declare const ConnectorList: S.$Array<S.Schema<ConnectorSummary>>;
export interface ListConnectorsResponse {
    Connectors?: ConnectorSummary[];
    NextToken?: string;
}
export declare const ListConnectorsResponse: S.Schema<ListConnectorsResponse>;
export interface CreateDirectoryRegistrationRequest {
    DirectoryId: string;
    ClientToken?: string;
    Tags?: {
        [key: string]: string | undefined;
    };
}
export declare const CreateDirectoryRegistrationRequest: S.Schema<CreateDirectoryRegistrationRequest>;
export interface CreateDirectoryRegistrationResponse {
    DirectoryRegistrationArn?: string;
}
export declare const CreateDirectoryRegistrationResponse: S.Schema<CreateDirectoryRegistrationResponse>;
export interface GetDirectoryRegistrationRequest {
    DirectoryRegistrationArn: string;
}
export declare const GetDirectoryRegistrationRequest: S.Schema<GetDirectoryRegistrationRequest>;
export type DirectoryRegistrationStatus = "CREATING" | "ACTIVE" | "DELETING" | "FAILED" | (string & {});
export declare const DirectoryRegistrationStatus: S.String;
export type DirectoryRegistrationStatusReason = "DIRECTORY_ACCESS_DENIED" | "DIRECTORY_RESOURCE_NOT_FOUND" | "DIRECTORY_NOT_ACTIVE" | "DIRECTORY_NOT_REACHABLE" | "DIRECTORY_TYPE_NOT_SUPPORTED" | "INTERNAL_FAILURE" | (string & {});
export declare const DirectoryRegistrationStatusReason: S.String;
export interface DirectoryRegistration {
    Arn?: string;
    DirectoryId?: string;
    Status?: DirectoryRegistrationStatus;
    StatusReason?: DirectoryRegistrationStatusReason;
    CreatedAt?: Date;
    UpdatedAt?: Date;
}
export declare const DirectoryRegistration: S.Schema<DirectoryRegistration>;
export interface GetDirectoryRegistrationResponse {
    DirectoryRegistration?: DirectoryRegistration;
}
export declare const GetDirectoryRegistrationResponse: S.Schema<GetDirectoryRegistrationResponse>;
export interface DeleteDirectoryRegistrationRequest {
    DirectoryRegistrationArn: string;
}
export declare const DeleteDirectoryRegistrationRequest: S.Schema<DeleteDirectoryRegistrationRequest>;
export interface DeleteDirectoryRegistrationResponse {
}
export declare const DeleteDirectoryRegistrationResponse: S.Schema<DeleteDirectoryRegistrationResponse>;
export interface ListDirectoryRegistrationsRequest {
    MaxResults?: number;
    NextToken?: string;
}
export declare const ListDirectoryRegistrationsRequest: S.Schema<ListDirectoryRegistrationsRequest>;
export interface DirectoryRegistrationSummary {
    Arn?: string;
    DirectoryId?: string;
    Status?: DirectoryRegistrationStatus;
    StatusReason?: DirectoryRegistrationStatusReason;
    CreatedAt?: Date;
    UpdatedAt?: Date;
}
export declare const DirectoryRegistrationSummary: S.Schema<DirectoryRegistrationSummary>;
export type DirectoryRegistrationList = DirectoryRegistrationSummary[];
export declare const DirectoryRegistrationList: S.$Array<S.Schema<DirectoryRegistrationSummary>>;
export interface ListDirectoryRegistrationsResponse {
    DirectoryRegistrations?: DirectoryRegistrationSummary[];
    NextToken?: string;
}
export declare const ListDirectoryRegistrationsResponse: S.Schema<ListDirectoryRegistrationsResponse>;
export interface CreateServicePrincipalNameRequest {
    DirectoryRegistrationArn: string;
    ConnectorArn: string;
    ClientToken?: string;
}
export declare const CreateServicePrincipalNameRequest: S.Schema<CreateServicePrincipalNameRequest>;
export interface CreateServicePrincipalNameResponse {
}
export declare const CreateServicePrincipalNameResponse: S.Schema<CreateServicePrincipalNameResponse>;
export interface GetServicePrincipalNameRequest {
    DirectoryRegistrationArn: string;
    ConnectorArn: string;
}
export declare const GetServicePrincipalNameRequest: S.Schema<GetServicePrincipalNameRequest>;
export type ServicePrincipalNameStatus = "CREATING" | "ACTIVE" | "DELETING" | "FAILED" | (string & {});
export declare const ServicePrincipalNameStatus: S.String;
export type ServicePrincipalNameStatusReason = "DIRECTORY_ACCESS_DENIED" | "DIRECTORY_NOT_REACHABLE" | "DIRECTORY_RESOURCE_NOT_FOUND" | "SPN_EXISTS_ON_DIFFERENT_AD_OBJECT" | "SPN_LIMIT_EXCEEDED" | "INTERNAL_FAILURE" | (string & {});
export declare const ServicePrincipalNameStatusReason: S.String;
export interface ServicePrincipalName {
    DirectoryRegistrationArn?: string;
    ConnectorArn?: string;
    Status?: ServicePrincipalNameStatus;
    StatusReason?: ServicePrincipalNameStatusReason;
    CreatedAt?: Date;
    UpdatedAt?: Date;
}
export declare const ServicePrincipalName: S.Schema<ServicePrincipalName>;
export interface GetServicePrincipalNameResponse {
    ServicePrincipalName?: ServicePrincipalName;
}
export declare const GetServicePrincipalNameResponse: S.Schema<GetServicePrincipalNameResponse>;
export interface DeleteServicePrincipalNameRequest {
    DirectoryRegistrationArn: string;
    ConnectorArn: string;
}
export declare const DeleteServicePrincipalNameRequest: S.Schema<DeleteServicePrincipalNameRequest>;
export interface DeleteServicePrincipalNameResponse {
}
export declare const DeleteServicePrincipalNameResponse: S.Schema<DeleteServicePrincipalNameResponse>;
export interface ListServicePrincipalNamesRequest {
    MaxResults?: number;
    NextToken?: string;
    DirectoryRegistrationArn: string;
}
export declare const ListServicePrincipalNamesRequest: S.Schema<ListServicePrincipalNamesRequest>;
export interface ServicePrincipalNameSummary {
    DirectoryRegistrationArn?: string;
    ConnectorArn?: string;
    Status?: ServicePrincipalNameStatus;
    StatusReason?: ServicePrincipalNameStatusReason;
    CreatedAt?: Date;
    UpdatedAt?: Date;
}
export declare const ServicePrincipalNameSummary: S.Schema<ServicePrincipalNameSummary>;
export type ServicePrincipalNameList = ServicePrincipalNameSummary[];
export declare const ServicePrincipalNameList: S.$Array<S.Schema<ServicePrincipalNameSummary>>;
export interface ListServicePrincipalNamesResponse {
    ServicePrincipalNames?: ServicePrincipalNameSummary[];
    NextToken?: string;
}
export declare const ListServicePrincipalNamesResponse: S.Schema<ListServicePrincipalNamesResponse>;
export type AccessRight = "ALLOW" | "DENY" | (string & {});
export declare const AccessRight: S.String;
export interface AccessRights {
    Enroll?: AccessRight;
    AutoEnroll?: AccessRight;
}
export declare const AccessRights: S.Schema<AccessRights>;
export interface CreateTemplateGroupAccessControlEntryRequest {
    TemplateArn: string;
    GroupSecurityIdentifier: string;
    GroupDisplayName: string;
    AccessRights: AccessRights;
    ClientToken?: string;
}
export declare const CreateTemplateGroupAccessControlEntryRequest: S.Schema<CreateTemplateGroupAccessControlEntryRequest>;
export interface CreateTemplateGroupAccessControlEntryResponse {
}
export declare const CreateTemplateGroupAccessControlEntryResponse: S.Schema<CreateTemplateGroupAccessControlEntryResponse>;
export interface GetTemplateGroupAccessControlEntryRequest {
    TemplateArn: string;
    GroupSecurityIdentifier: string;
}
export declare const GetTemplateGroupAccessControlEntryRequest: S.Schema<GetTemplateGroupAccessControlEntryRequest>;
export interface AccessControlEntry {
    GroupDisplayName?: string;
    GroupSecurityIdentifier?: string;
    AccessRights?: AccessRights;
    TemplateArn?: string;
    CreatedAt?: Date;
    UpdatedAt?: Date;
}
export declare const AccessControlEntry: S.Schema<AccessControlEntry>;
export interface GetTemplateGroupAccessControlEntryResponse {
    AccessControlEntry?: AccessControlEntry;
}
export declare const GetTemplateGroupAccessControlEntryResponse: S.Schema<GetTemplateGroupAccessControlEntryResponse>;
export interface UpdateTemplateGroupAccessControlEntryRequest {
    TemplateArn: string;
    GroupSecurityIdentifier: string;
    GroupDisplayName?: string;
    AccessRights?: AccessRights;
}
export declare const UpdateTemplateGroupAccessControlEntryRequest: S.Schema<UpdateTemplateGroupAccessControlEntryRequest>;
export interface UpdateTemplateGroupAccessControlEntryResponse {
}
export declare const UpdateTemplateGroupAccessControlEntryResponse: S.Schema<UpdateTemplateGroupAccessControlEntryResponse>;
export interface DeleteTemplateGroupAccessControlEntryRequest {
    TemplateArn: string;
    GroupSecurityIdentifier: string;
}
export declare const DeleteTemplateGroupAccessControlEntryRequest: S.Schema<DeleteTemplateGroupAccessControlEntryRequest>;
export interface DeleteTemplateGroupAccessControlEntryResponse {
}
export declare const DeleteTemplateGroupAccessControlEntryResponse: S.Schema<DeleteTemplateGroupAccessControlEntryResponse>;
export interface ListTemplateGroupAccessControlEntriesRequest {
    MaxResults?: number;
    NextToken?: string;
    TemplateArn: string;
}
export declare const ListTemplateGroupAccessControlEntriesRequest: S.Schema<ListTemplateGroupAccessControlEntriesRequest>;
export interface AccessControlEntrySummary {
    GroupDisplayName?: string;
    GroupSecurityIdentifier?: string;
    AccessRights?: AccessRights;
    TemplateArn?: string;
    CreatedAt?: Date;
    UpdatedAt?: Date;
}
export declare const AccessControlEntrySummary: S.Schema<AccessControlEntrySummary>;
export type AccessControlEntryList = AccessControlEntrySummary[];
export declare const AccessControlEntryList: S.$Array<S.Schema<AccessControlEntrySummary>>;
export interface ListTemplateGroupAccessControlEntriesResponse {
    AccessControlEntries?: AccessControlEntrySummary[];
    NextToken?: string;
}
export declare const ListTemplateGroupAccessControlEntriesResponse: S.Schema<ListTemplateGroupAccessControlEntriesResponse>;
export type ValidityPeriodType = "HOURS" | "DAYS" | "WEEKS" | "MONTHS" | "YEARS" | (string & {});
export declare const ValidityPeriodType: S.String;
export interface ValidityPeriod {
    PeriodType: ValidityPeriodType;
    Period: number;
}
export declare const ValidityPeriod: S.Schema<ValidityPeriod>;
export interface CertificateValidity {
    ValidityPeriod: ValidityPeriod;
    RenewalPeriod: ValidityPeriod;
}
export declare const CertificateValidity: S.Schema<CertificateValidity>;
export type TemplateNameList = string[];
export declare const TemplateNameList: S.$Array<S.String>;
export type KeySpec = "KEY_EXCHANGE" | "SIGNATURE" | (string & {});
export declare const KeySpec: S.String;
export type CryptoProvidersList = string[];
export declare const CryptoProvidersList: S.$Array<S.String>;
export interface PrivateKeyAttributesV2 {
    MinimalKeyLength: number;
    KeySpec: KeySpec;
    CryptoProviders?: string[];
}
export declare const PrivateKeyAttributesV2: S.Schema<PrivateKeyAttributesV2>;
export type ClientCompatibilityV2 = "WINDOWS_SERVER_2003" | "WINDOWS_SERVER_2008" | "WINDOWS_SERVER_2008_R2" | "WINDOWS_SERVER_2012" | "WINDOWS_SERVER_2012_R2" | "WINDOWS_SERVER_2016" | (string & {});
export declare const ClientCompatibilityV2: S.String;
export interface PrivateKeyFlagsV2 {
    ExportableKey?: boolean;
    StrongKeyProtectionRequired?: boolean;
    ClientVersion: ClientCompatibilityV2;
}
export declare const PrivateKeyFlagsV2: S.Schema<PrivateKeyFlagsV2>;
export interface EnrollmentFlagsV2 {
    IncludeSymmetricAlgorithms?: boolean;
    UserInteractionRequired?: boolean;
    RemoveInvalidCertificateFromPersonalStore?: boolean;
    NoSecurityExtension?: boolean;
    EnableKeyReuseOnNtTokenKeysetStorageFull?: boolean;
}
export declare const EnrollmentFlagsV2: S.Schema<EnrollmentFlagsV2>;
export interface SubjectNameFlagsV2 {
    SanRequireDomainDns?: boolean;
    SanRequireSpn?: boolean;
    SanRequireDirectoryGuid?: boolean;
    SanRequireUpn?: boolean;
    SanRequireEmail?: boolean;
    SanRequireDns?: boolean;
    RequireDnsAsCn?: boolean;
    RequireEmail?: boolean;
    RequireCommonName?: boolean;
    RequireDirectoryPath?: boolean;
}
export declare const SubjectNameFlagsV2: S.Schema<SubjectNameFlagsV2>;
export interface GeneralFlagsV2 {
    AutoEnrollment?: boolean;
    MachineType?: boolean;
}
export declare const GeneralFlagsV2: S.Schema<GeneralFlagsV2>;
export interface KeyUsageFlags {
    DigitalSignature?: boolean;
    NonRepudiation?: boolean;
    KeyEncipherment?: boolean;
    DataEncipherment?: boolean;
    KeyAgreement?: boolean;
}
export declare const KeyUsageFlags: S.Schema<KeyUsageFlags>;
export interface KeyUsage {
    Critical?: boolean;
    UsageFlags: KeyUsageFlags;
}
export declare const KeyUsage: S.Schema<KeyUsage>;
export type ApplicationPolicyType = "ALL_APPLICATION_POLICIES" | "ANY_PURPOSE" | "ATTESTATION_IDENTITY_KEY_CERTIFICATE" | "CERTIFICATE_REQUEST_AGENT" | "CLIENT_AUTHENTICATION" | "CODE_SIGNING" | "CTL_USAGE" | "DIGITAL_RIGHTS" | "DIRECTORY_SERVICE_EMAIL_REPLICATION" | "DISALLOWED_LIST" | "DNS_SERVER_TRUST" | "DOCUMENT_ENCRYPTION" | "DOCUMENT_SIGNING" | "DYNAMIC_CODE_GENERATOR" | "EARLY_LAUNCH_ANTIMALWARE_DRIVER" | "EMBEDDED_WINDOWS_SYSTEM_COMPONENT_VERIFICATION" | "ENCLAVE" | "ENCRYPTING_FILE_SYSTEM" | "ENDORSEMENT_KEY_CERTIFICATE" | "FILE_RECOVERY" | "HAL_EXTENSION" | "IP_SECURITY_END_SYSTEM" | "IP_SECURITY_IKE_INTERMEDIATE" | "IP_SECURITY_TUNNEL_TERMINATION" | "IP_SECURITY_USER" | "ISOLATED_USER_MODE" | "KDC_AUTHENTICATION" | "KERNEL_MODE_CODE_SIGNING" | "KEY_PACK_LICENSES" | "KEY_RECOVERY" | "KEY_RECOVERY_AGENT" | "LICENSE_SERVER_VERIFICATION" | "LIFETIME_SIGNING" | "MICROSOFT_PUBLISHER" | "MICROSOFT_TIME_STAMPING" | "MICROSOFT_TRUST_LIST_SIGNING" | "OCSP_SIGNING" | "OEM_WINDOWS_SYSTEM_COMPONENT_VERIFICATION" | "PLATFORM_CERTIFICATE" | "PREVIEW_BUILD_SIGNING" | "PRIVATE_KEY_ARCHIVAL" | "PROTECTED_PROCESS_LIGHT_VERIFICATION" | "PROTECTED_PROCESS_VERIFICATION" | "QUALIFIED_SUBORDINATION" | "REVOKED_LIST_SIGNER" | "ROOT_PROGRAM_AUTO_UPDATE_CA_REVOCATION" | "ROOT_PROGRAM_AUTO_UPDATE_END_REVOCATION" | "ROOT_PROGRAM_NO_OSCP_FAILOVER_TO_CRL" | "ROOT_LIST_SIGNER" | "SECURE_EMAIL" | "SERVER_AUTHENTICATION" | "SMART_CARD_LOGIN" | "SPC_ENCRYPTED_DIGEST_RETRY_COUNT" | "SPC_RELAXED_PE_MARKER_CHECK" | "TIME_STAMPING" | "WINDOWS_HARDWARE_DRIVER_ATTESTED_VERIFICATION" | "WINDOWS_HARDWARE_DRIVER_EXTENDED_VERIFICATION" | "WINDOWS_HARDWARE_DRIVER_VERIFICATION" | "WINDOWS_HELLO_RECOVERY_KEY_ENCRYPTION" | "WINDOWS_KITS_COMPONENT" | "WINDOWS_RT_VERIFICATION" | "WINDOWS_SOFTWARE_EXTENSION_VERIFICATION" | "WINDOWS_STORE" | "WINDOWS_SYSTEM_COMPONENT_VERIFICATION" | "WINDOWS_TCB_COMPONENT" | "WINDOWS_THIRD_PARTY_APPLICATION_COMPONENT" | "WINDOWS_UPDATE" | (string & {});
export declare const ApplicationPolicyType: S.String;
export type ApplicationPolicy = {
    PolicyType: ApplicationPolicyType;
    PolicyObjectIdentifier?: never;
} | {
    PolicyType?: never;
    PolicyObjectIdentifier: string;
};
export declare const ApplicationPolicy: S.Union<readonly [S.Struct<{
    readonly PolicyType: S.String;
}>, S.Struct<{
    readonly PolicyObjectIdentifier: S.String;
}>]>;
export type ApplicationPolicyList = ApplicationPolicy[];
export declare const ApplicationPolicyList: S.$Array<S.Union<readonly [S.Struct<{
    readonly PolicyType: S.String;
}>, S.Struct<{
    readonly PolicyObjectIdentifier: S.String;
}>]>>;
export interface ApplicationPolicies {
    Critical?: boolean;
    Policies: ApplicationPolicy[];
}
export declare const ApplicationPolicies: S.Schema<ApplicationPolicies>;
export interface ExtensionsV2 {
    KeyUsage: KeyUsage;
    ApplicationPolicies?: ApplicationPolicies;
}
export declare const ExtensionsV2: S.Schema<ExtensionsV2>;
export interface TemplateV2 {
    CertificateValidity: CertificateValidity;
    SupersededTemplates?: string[];
    PrivateKeyAttributes: PrivateKeyAttributesV2;
    PrivateKeyFlags: PrivateKeyFlagsV2;
    EnrollmentFlags: EnrollmentFlagsV2;
    SubjectNameFlags: SubjectNameFlagsV2;
    GeneralFlags: GeneralFlagsV2;
    Extensions: ExtensionsV2;
}
export declare const TemplateV2: S.Schema<TemplateV2>;
export type KeyUsagePropertyType = "ALL" | (string & {});
export declare const KeyUsagePropertyType: S.String;
export interface KeyUsagePropertyFlags {
    Decrypt?: boolean;
    KeyAgreement?: boolean;
    Sign?: boolean;
}
export declare const KeyUsagePropertyFlags: S.Schema<KeyUsagePropertyFlags>;
export type KeyUsageProperty = {
    PropertyType: KeyUsagePropertyType;
    PropertyFlags?: never;
} | {
    PropertyType?: never;
    PropertyFlags: KeyUsagePropertyFlags;
};
export declare const KeyUsageProperty: S.Union<readonly [S.Struct<{
    readonly PropertyType: S.String;
}>, S.Struct<{
    readonly PropertyFlags: S.Schema<KeyUsagePropertyFlags>;
}>]>;
export type PrivateKeyAlgorithm = "RSA" | "ECDH_P256" | "ECDH_P384" | "ECDH_P521" | (string & {});
export declare const PrivateKeyAlgorithm: S.String;
export interface PrivateKeyAttributesV3 {
    MinimalKeyLength: number;
    KeySpec: KeySpec;
    CryptoProviders?: string[];
    KeyUsageProperty: KeyUsageProperty;
    Algorithm: PrivateKeyAlgorithm;
}
export declare const PrivateKeyAttributesV3: S.Schema<PrivateKeyAttributesV3>;
export type ClientCompatibilityV3 = "WINDOWS_SERVER_2008" | "WINDOWS_SERVER_2008_R2" | "WINDOWS_SERVER_2012" | "WINDOWS_SERVER_2012_R2" | "WINDOWS_SERVER_2016" | (string & {});
export declare const ClientCompatibilityV3: S.String;
export interface PrivateKeyFlagsV3 {
    ExportableKey?: boolean;
    StrongKeyProtectionRequired?: boolean;
    RequireAlternateSignatureAlgorithm?: boolean;
    ClientVersion: ClientCompatibilityV3;
}
export declare const PrivateKeyFlagsV3: S.Schema<PrivateKeyFlagsV3>;
export interface EnrollmentFlagsV3 {
    IncludeSymmetricAlgorithms?: boolean;
    UserInteractionRequired?: boolean;
    RemoveInvalidCertificateFromPersonalStore?: boolean;
    NoSecurityExtension?: boolean;
    EnableKeyReuseOnNtTokenKeysetStorageFull?: boolean;
}
export declare const EnrollmentFlagsV3: S.Schema<EnrollmentFlagsV3>;
export interface SubjectNameFlagsV3 {
    SanRequireDomainDns?: boolean;
    SanRequireSpn?: boolean;
    SanRequireDirectoryGuid?: boolean;
    SanRequireUpn?: boolean;
    SanRequireEmail?: boolean;
    SanRequireDns?: boolean;
    RequireDnsAsCn?: boolean;
    RequireEmail?: boolean;
    RequireCommonName?: boolean;
    RequireDirectoryPath?: boolean;
}
export declare const SubjectNameFlagsV3: S.Schema<SubjectNameFlagsV3>;
export interface GeneralFlagsV3 {
    AutoEnrollment?: boolean;
    MachineType?: boolean;
}
export declare const GeneralFlagsV3: S.Schema<GeneralFlagsV3>;
export type HashAlgorithm = "SHA256" | "SHA384" | "SHA512" | (string & {});
export declare const HashAlgorithm: S.String;
export interface ExtensionsV3 {
    KeyUsage: KeyUsage;
    ApplicationPolicies?: ApplicationPolicies;
}
export declare const ExtensionsV3: S.Schema<ExtensionsV3>;
export interface TemplateV3 {
    CertificateValidity: CertificateValidity;
    SupersededTemplates?: string[];
    PrivateKeyAttributes: PrivateKeyAttributesV3;
    PrivateKeyFlags: PrivateKeyFlagsV3;
    EnrollmentFlags: EnrollmentFlagsV3;
    SubjectNameFlags: SubjectNameFlagsV3;
    GeneralFlags: GeneralFlagsV3;
    HashAlgorithm: HashAlgorithm;
    Extensions: ExtensionsV3;
}
export declare const TemplateV3: S.Schema<TemplateV3>;
export interface PrivateKeyAttributesV4 {
    MinimalKeyLength: number;
    KeySpec: KeySpec;
    CryptoProviders?: string[];
    KeyUsageProperty?: KeyUsageProperty;
    Algorithm?: PrivateKeyAlgorithm;
}
export declare const PrivateKeyAttributesV4: S.Schema<PrivateKeyAttributesV4>;
export type ClientCompatibilityV4 = "WINDOWS_SERVER_2012" | "WINDOWS_SERVER_2012_R2" | "WINDOWS_SERVER_2016" | (string & {});
export declare const ClientCompatibilityV4: S.String;
export interface PrivateKeyFlagsV4 {
    ExportableKey?: boolean;
    StrongKeyProtectionRequired?: boolean;
    RequireAlternateSignatureAlgorithm?: boolean;
    RequireSameKeyRenewal?: boolean;
    UseLegacyProvider?: boolean;
    ClientVersion: ClientCompatibilityV4;
}
export declare const PrivateKeyFlagsV4: S.Schema<PrivateKeyFlagsV4>;
export interface EnrollmentFlagsV4 {
    IncludeSymmetricAlgorithms?: boolean;
    UserInteractionRequired?: boolean;
    RemoveInvalidCertificateFromPersonalStore?: boolean;
    NoSecurityExtension?: boolean;
    EnableKeyReuseOnNtTokenKeysetStorageFull?: boolean;
}
export declare const EnrollmentFlagsV4: S.Schema<EnrollmentFlagsV4>;
export interface SubjectNameFlagsV4 {
    SanRequireDomainDns?: boolean;
    SanRequireSpn?: boolean;
    SanRequireDirectoryGuid?: boolean;
    SanRequireUpn?: boolean;
    SanRequireEmail?: boolean;
    SanRequireDns?: boolean;
    RequireDnsAsCn?: boolean;
    RequireEmail?: boolean;
    RequireCommonName?: boolean;
    RequireDirectoryPath?: boolean;
}
export declare const SubjectNameFlagsV4: S.Schema<SubjectNameFlagsV4>;
export interface GeneralFlagsV4 {
    AutoEnrollment?: boolean;
    MachineType?: boolean;
}
export declare const GeneralFlagsV4: S.Schema<GeneralFlagsV4>;
export interface ExtensionsV4 {
    KeyUsage: KeyUsage;
    ApplicationPolicies?: ApplicationPolicies;
}
export declare const ExtensionsV4: S.Schema<ExtensionsV4>;
export interface TemplateV4 {
    CertificateValidity: CertificateValidity;
    SupersededTemplates?: string[];
    PrivateKeyAttributes: PrivateKeyAttributesV4;
    PrivateKeyFlags: PrivateKeyFlagsV4;
    EnrollmentFlags: EnrollmentFlagsV4;
    SubjectNameFlags: SubjectNameFlagsV4;
    GeneralFlags: GeneralFlagsV4;
    HashAlgorithm?: HashAlgorithm;
    Extensions: ExtensionsV4;
}
export declare const TemplateV4: S.Schema<TemplateV4>;
export type TemplateDefinition = {
    TemplateV2: TemplateV2;
    TemplateV3?: never;
    TemplateV4?: never;
} | {
    TemplateV2?: never;
    TemplateV3: TemplateV3;
    TemplateV4?: never;
} | {
    TemplateV2?: never;
    TemplateV3?: never;
    TemplateV4: TemplateV4;
};
export declare const TemplateDefinition: S.Union<readonly [S.Struct<{
    readonly TemplateV2: S.Schema<TemplateV2>;
}>, S.Struct<{
    readonly TemplateV3: S.Schema<TemplateV3>;
}>, S.Struct<{
    readonly TemplateV4: S.Schema<TemplateV4>;
}>]>;
export interface CreateTemplateRequest {
    ConnectorArn: string;
    Name: string;
    Definition: TemplateDefinition;
    ClientToken?: string;
    Tags?: {
        [key: string]: string | undefined;
    };
}
export declare const CreateTemplateRequest: S.Schema<CreateTemplateRequest>;
export interface CreateTemplateResponse {
    TemplateArn?: string;
}
export declare const CreateTemplateResponse: S.Schema<CreateTemplateResponse>;
export interface GetTemplateRequest {
    TemplateArn: string;
}
export declare const GetTemplateRequest: S.Schema<GetTemplateRequest>;
export type TemplateStatus = "ACTIVE" | "DELETING" | (string & {});
export declare const TemplateStatus: S.String;
export interface TemplateRevision {
    MajorRevision: number;
    MinorRevision: number;
}
export declare const TemplateRevision: S.Schema<TemplateRevision>;
export interface Template {
    Arn?: string;
    ConnectorArn?: string;
    Definition?: TemplateDefinition;
    Name?: string;
    ObjectIdentifier?: string;
    PolicySchema?: number;
    Status?: TemplateStatus;
    Revision?: TemplateRevision;
    CreatedAt?: Date;
    UpdatedAt?: Date;
}
export declare const Template: S.Schema<Template>;
export interface GetTemplateResponse {
    Template?: Template;
}
export declare const GetTemplateResponse: S.Schema<GetTemplateResponse>;
export interface UpdateTemplateRequest {
    TemplateArn: string;
    Definition?: TemplateDefinition;
    ReenrollAllCertificateHolders?: boolean;
}
export declare const UpdateTemplateRequest: S.Schema<UpdateTemplateRequest>;
export interface UpdateTemplateResponse {
}
export declare const UpdateTemplateResponse: S.Schema<UpdateTemplateResponse>;
export interface DeleteTemplateRequest {
    TemplateArn: string;
}
export declare const DeleteTemplateRequest: S.Schema<DeleteTemplateRequest>;
export interface DeleteTemplateResponse {
}
export declare const DeleteTemplateResponse: S.Schema<DeleteTemplateResponse>;
export interface ListTemplatesRequest {
    MaxResults?: number;
    NextToken?: string;
    ConnectorArn: string;
}
export declare const ListTemplatesRequest: S.Schema<ListTemplatesRequest>;
export interface TemplateSummary {
    Arn?: string;
    ConnectorArn?: string;
    Definition?: TemplateDefinition;
    Name?: string;
    ObjectIdentifier?: string;
    PolicySchema?: number;
    Status?: TemplateStatus;
    Revision?: TemplateRevision;
    CreatedAt?: Date;
    UpdatedAt?: Date;
}
export declare const TemplateSummary: S.Schema<TemplateSummary>;
export type TemplateList = TemplateSummary[];
export declare const TemplateList: S.$Array<S.Schema<TemplateSummary>>;
export interface ListTemplatesResponse {
    Templates?: TemplateSummary[];
    NextToken?: string;
}
export declare const ListTemplatesResponse: S.Schema<ListTemplatesResponse>;
declare const AccessDeniedException_base: S.Class<AccessDeniedException, S.TaggedStruct<"AccessDeniedException", {
    readonly Message: S.String;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        AuthError: true;
    };
});
export declare class AccessDeniedException extends AccessDeniedException_base {
}
declare const InternalServerException_base: S.Class<InternalServerException, S.TaggedStruct<"InternalServerException", {
    readonly Message: S.String;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        ServerError: true;
    };
}) & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        RetryableError: true;
    };
});
export declare class InternalServerException extends InternalServerException_base {
}
declare const ResourceNotFoundException_base: S.Class<ResourceNotFoundException, S.TaggedStruct<"ResourceNotFoundException", {
    readonly Message: S.String;
    readonly ResourceId: S.String;
    readonly ResourceType: S.String;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        BadRequestError: true;
    };
});
export declare class ResourceNotFoundException extends ResourceNotFoundException_base {
}
declare const ThrottlingException_base: S.Class<ThrottlingException, S.TaggedStruct<"ThrottlingException", {
    readonly Message: S.String;
    readonly ServiceCode: S.optional<S.String>;
    readonly QuotaCode: S.optional<S.String>;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        ThrottlingError: true;
    };
}) & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        RetryableError: true;
    };
});
export declare class ThrottlingException extends ThrottlingException_base {
}
declare const ValidationException_base: S.Class<ValidationException, S.TaggedStruct<"ValidationException", {
    readonly Message: S.String;
    readonly Reason: S.optional<S.String>;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        BadRequestError: true;
    };
});
export declare class ValidationException extends ValidationException_base {
}
declare const ConflictException_base: S.Class<ConflictException, S.TaggedStruct<"ConflictException", {
    readonly Message: S.String;
    readonly ResourceId: S.String;
    readonly ResourceType: S.String;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        ConflictError: true;
    };
});
export declare class ConflictException extends ConflictException_base {
}
declare const ServiceQuotaExceededException_base: S.Class<ServiceQuotaExceededException, S.TaggedStruct<"ServiceQuotaExceededException", {
    readonly Message: S.String;
    readonly ResourceId: S.String;
    readonly ResourceType: S.String;
    readonly ServiceCode: S.String;
    readonly QuotaCode: S.String;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        QuotaError: true;
    };
});
export declare class ServiceQuotaExceededException extends ServiceQuotaExceededException_base {
}
export type ListTagsForResourceError = AccessDeniedException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Lists the tags, if any, that are associated with your resource.
 */
export declare const listTagsForResource: API.OperationMethod<ListTagsForResourceRequest, ListTagsForResourceResponse, ListTagsForResourceError, Credentials | Region | HttpClient.HttpClient>;
export type TagResourceError = AccessDeniedException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Adds one or more tags to your resource.
 */
export declare const tagResource: API.OperationMethod<TagResourceRequest, TagResourceResponse, TagResourceError, Credentials | Region | HttpClient.HttpClient>;
export type UntagResourceError = AccessDeniedException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Removes one or more tags from your resource.
 */
export declare const untagResource: API.OperationMethod<UntagResourceRequest, UntagResourceResponse, UntagResourceError, Credentials | Region | HttpClient.HttpClient>;
export type CreateConnectorError = AccessDeniedException | ConflictException | InternalServerException | ResourceNotFoundException | ServiceQuotaExceededException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Creates a connector between Amazon Web Services Private CA and an Active Directory. You must specify the private CA,
 * directory ID, and security groups.
 */
export declare const createConnector: API.OperationMethod<CreateConnectorRequest, CreateConnectorResponse, CreateConnectorError, Credentials | Region | HttpClient.HttpClient>;
export type GetConnectorError = AccessDeniedException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Lists information about your connector. You specify the connector on input by its ARN
 * (Amazon Resource Name).
 */
export declare const getConnector: API.OperationMethod<GetConnectorRequest, GetConnectorResponse, GetConnectorError, Credentials | Region | HttpClient.HttpClient>;
export type DeleteConnectorError = AccessDeniedException | ConflictException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Deletes a connector for Active Directory. You must provide the Amazon Resource Name (ARN) of the
 * connector that you want to delete. You can find the ARN by calling the https://docs.aws.amazon.com/pca-connector-ad/latest/APIReference/API_ListConnectors
 * action. Deleting a connector does not deregister your directory with Amazon Web Services Private CA. You can
 * deregister your directory by calling the https://docs.aws.amazon.com/pca-connector-ad/latest/APIReference/API_DeleteDirectoryRegistration
 * action.
 */
export declare const deleteConnector: API.OperationMethod<DeleteConnectorRequest, DeleteConnectorResponse, DeleteConnectorError, Credentials | Region | HttpClient.HttpClient>;
export type ListConnectorsError = AccessDeniedException | InternalServerException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Lists the connectors that you created by using the https://docs.aws.amazon.com/pca-connector-ad/latest/APIReference/API_CreateConnector action.
 */
export declare const listConnectors: API.OperationMethod<ListConnectorsRequest, ListConnectorsResponse, ListConnectorsError, Credentials | Region | HttpClient.HttpClient> & {
    pages: (input: ListConnectorsRequest) => stream.Stream<ListConnectorsResponse, ListConnectorsError, Credentials | Region | HttpClient.HttpClient>;
    items: (input: ListConnectorsRequest) => stream.Stream<ConnectorSummary, ListConnectorsError, Credentials | Region | HttpClient.HttpClient>;
};
export type CreateDirectoryRegistrationError = AccessDeniedException | ConflictException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Creates a directory registration that authorizes communication between Amazon Web Services Private CA and an
 * Active Directory
 */
export declare const createDirectoryRegistration: API.OperationMethod<CreateDirectoryRegistrationRequest, CreateDirectoryRegistrationResponse, CreateDirectoryRegistrationError, Credentials | Region | HttpClient.HttpClient>;
export type GetDirectoryRegistrationError = AccessDeniedException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * A structure that contains information about your directory registration.
 */
export declare const getDirectoryRegistration: API.OperationMethod<GetDirectoryRegistrationRequest, GetDirectoryRegistrationResponse, GetDirectoryRegistrationError, Credentials | Region | HttpClient.HttpClient>;
export type DeleteDirectoryRegistrationError = AccessDeniedException | ConflictException | InternalServerException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Deletes a directory registration. Deleting a directory registration deauthorizes
 * Amazon Web Services Private CA with the directory.
 */
export declare const deleteDirectoryRegistration: API.OperationMethod<DeleteDirectoryRegistrationRequest, DeleteDirectoryRegistrationResponse, DeleteDirectoryRegistrationError, Credentials | Region | HttpClient.HttpClient>;
export type ListDirectoryRegistrationsError = AccessDeniedException | InternalServerException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Lists the directory registrations that you created by using the https://docs.aws.amazon.com/pca-connector-ad/latest/APIReference/API_CreateDirectoryRegistration
 * action.
 */
export declare const listDirectoryRegistrations: API.OperationMethod<ListDirectoryRegistrationsRequest, ListDirectoryRegistrationsResponse, ListDirectoryRegistrationsError, Credentials | Region | HttpClient.HttpClient> & {
    pages: (input: ListDirectoryRegistrationsRequest) => stream.Stream<ListDirectoryRegistrationsResponse, ListDirectoryRegistrationsError, Credentials | Region | HttpClient.HttpClient>;
    items: (input: ListDirectoryRegistrationsRequest) => stream.Stream<DirectoryRegistrationSummary, ListDirectoryRegistrationsError, Credentials | Region | HttpClient.HttpClient>;
};
export type CreateServicePrincipalNameError = AccessDeniedException | ConflictException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Creates a service principal name (SPN) for the service account in Active Directory. Kerberos
 * authentication uses SPNs to associate a service instance with a service sign-in
 * account.
 */
export declare const createServicePrincipalName: API.OperationMethod<CreateServicePrincipalNameRequest, CreateServicePrincipalNameResponse, CreateServicePrincipalNameError, Credentials | Region | HttpClient.HttpClient>;
export type GetServicePrincipalNameError = AccessDeniedException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Lists the service principal name that the connector uses to authenticate with
 * Active Directory.
 */
export declare const getServicePrincipalName: API.OperationMethod<GetServicePrincipalNameRequest, GetServicePrincipalNameResponse, GetServicePrincipalNameError, Credentials | Region | HttpClient.HttpClient>;
export type DeleteServicePrincipalNameError = AccessDeniedException | ConflictException | InternalServerException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Deletes the service principal name (SPN) used by a connector to authenticate with your
 * Active Directory.
 */
export declare const deleteServicePrincipalName: API.OperationMethod<DeleteServicePrincipalNameRequest, DeleteServicePrincipalNameResponse, DeleteServicePrincipalNameError, Credentials | Region | HttpClient.HttpClient>;
export type ListServicePrincipalNamesError = AccessDeniedException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Lists the service principal names that the connector uses to authenticate with
 * Active Directory.
 */
export declare const listServicePrincipalNames: API.OperationMethod<ListServicePrincipalNamesRequest, ListServicePrincipalNamesResponse, ListServicePrincipalNamesError, Credentials | Region | HttpClient.HttpClient> & {
    pages: (input: ListServicePrincipalNamesRequest) => stream.Stream<ListServicePrincipalNamesResponse, ListServicePrincipalNamesError, Credentials | Region | HttpClient.HttpClient>;
    items: (input: ListServicePrincipalNamesRequest) => stream.Stream<ServicePrincipalNameSummary, ListServicePrincipalNamesError, Credentials | Region | HttpClient.HttpClient>;
};
export type CreateTemplateGroupAccessControlEntryError = AccessDeniedException | ConflictException | InternalServerException | ResourceNotFoundException | ServiceQuotaExceededException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Create a group access control entry. Allow or deny Active Directory groups from enrolling and/or
 * autoenrolling with the template based on the group security identifiers (SIDs).
 */
export declare const createTemplateGroupAccessControlEntry: API.OperationMethod<CreateTemplateGroupAccessControlEntryRequest, CreateTemplateGroupAccessControlEntryResponse, CreateTemplateGroupAccessControlEntryError, Credentials | Region | HttpClient.HttpClient>;
export type GetTemplateGroupAccessControlEntryError = AccessDeniedException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Retrieves the group access control entries for a template.
 */
export declare const getTemplateGroupAccessControlEntry: API.OperationMethod<GetTemplateGroupAccessControlEntryRequest, GetTemplateGroupAccessControlEntryResponse, GetTemplateGroupAccessControlEntryError, Credentials | Region | HttpClient.HttpClient>;
export type UpdateTemplateGroupAccessControlEntryError = AccessDeniedException | ConflictException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Update a group access control entry you created using CreateTemplateGroupAccessControlEntry.
 */
export declare const updateTemplateGroupAccessControlEntry: API.OperationMethod<UpdateTemplateGroupAccessControlEntryRequest, UpdateTemplateGroupAccessControlEntryResponse, UpdateTemplateGroupAccessControlEntryError, Credentials | Region | HttpClient.HttpClient>;
export type DeleteTemplateGroupAccessControlEntryError = AccessDeniedException | ConflictException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Deletes a group access control entry.
 */
export declare const deleteTemplateGroupAccessControlEntry: API.OperationMethod<DeleteTemplateGroupAccessControlEntryRequest, DeleteTemplateGroupAccessControlEntryResponse, DeleteTemplateGroupAccessControlEntryError, Credentials | Region | HttpClient.HttpClient>;
export type ListTemplateGroupAccessControlEntriesError = AccessDeniedException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Lists group access control entries you created.
 */
export declare const listTemplateGroupAccessControlEntries: API.OperationMethod<ListTemplateGroupAccessControlEntriesRequest, ListTemplateGroupAccessControlEntriesResponse, ListTemplateGroupAccessControlEntriesError, Credentials | Region | HttpClient.HttpClient> & {
    pages: (input: ListTemplateGroupAccessControlEntriesRequest) => stream.Stream<ListTemplateGroupAccessControlEntriesResponse, ListTemplateGroupAccessControlEntriesError, Credentials | Region | HttpClient.HttpClient>;
    items: (input: ListTemplateGroupAccessControlEntriesRequest) => stream.Stream<AccessControlEntrySummary, ListTemplateGroupAccessControlEntriesError, Credentials | Region | HttpClient.HttpClient>;
};
export type CreateTemplateError = AccessDeniedException | ConflictException | InternalServerException | ResourceNotFoundException | ServiceQuotaExceededException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Creates an Active Directory compatible certificate template. The connectors issues certificates
 * using these templates based on the requester’s Active Directory group membership.
 */
export declare const createTemplate: API.OperationMethod<CreateTemplateRequest, CreateTemplateResponse, CreateTemplateError, Credentials | Region | HttpClient.HttpClient>;
export type GetTemplateError = AccessDeniedException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Retrieves a certificate template that the connector uses to issue certificates from a
 * private CA.
 */
export declare const getTemplate: API.OperationMethod<GetTemplateRequest, GetTemplateResponse, GetTemplateError, Credentials | Region | HttpClient.HttpClient>;
export type UpdateTemplateError = AccessDeniedException | ConflictException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Update template configuration to define the information included in certificates.
 */
export declare const updateTemplate: API.OperationMethod<UpdateTemplateRequest, UpdateTemplateResponse, UpdateTemplateError, Credentials | Region | HttpClient.HttpClient>;
export type DeleteTemplateError = AccessDeniedException | ConflictException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Deletes a template. Certificates issued using the template are still valid until they
 * are revoked or expired.
 */
export declare const deleteTemplate: API.OperationMethod<DeleteTemplateRequest, DeleteTemplateResponse, DeleteTemplateError, Credentials | Region | HttpClient.HttpClient>;
export type ListTemplatesError = AccessDeniedException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Lists the templates, if any, that are associated with a connector.
 */
export declare const listTemplates: API.OperationMethod<ListTemplatesRequest, ListTemplatesResponse, ListTemplatesError, Credentials | Region | HttpClient.HttpClient> & {
    pages: (input: ListTemplatesRequest) => stream.Stream<ListTemplatesResponse, ListTemplatesError, Credentials | Region | HttpClient.HttpClient>;
    items: (input: ListTemplatesRequest) => stream.Stream<TemplateSummary, ListTemplatesError, Credentials | Region | HttpClient.HttpClient>;
};
export {};
//# sourceMappingURL=pca-connector-ad.d.ts.map