export interface BatchCreateFirewallRuleInputItem {
    /** The action to take when a DNS query matches the firewall rule. */
    action: 'ALLOW' | 'ALERT' | 'BLOCK';
    /** The DNS record type for the custom response when the action is BLOCK. */
    blockOverrideDnsType?: 'CNAME';
    /** The custom domain name for the BLOCK response. */
    blockOverrideDomain?: string;
    /** The TTL value for the custom response when the action is BLOCK. */
    blockOverrideTtl?: number;
    /** The type of block response to return when the action is BLOCK. */
    blockResponse?: 'NODATA' | 'NXDOMAIN' | 'OVERRIDE';
    /** A unique string that identifies the request and ensures idempotency. */
    clientToken: string;
    /** The confidence threshold for advanced threat detection. */
    confidenceThreshold?: 'LOW' | 'MEDIUM' | 'HIGH';
    /** A description of the firewall rule. */
    description?: string;
    /** Whether to enable advanced DNS threat protection for the firewall rule. */
    dnsAdvancedProtection?: 'DGA' | 'DNS_TUNNELING';
    /** The ID of the firewall domain list to associate with the rule. */
    firewallDomainListId?: string;
    /** A name for the firewall rule. */
    name: string;
    /** The priority of the firewall rule. */
    priority?: number;
    /** The ID of the DNS view to associate the firewall rule with. */
    dnsViewId: string;
    /** The DNS query type that the firewall rule should match. */
    qType?: string;
}
export interface BatchDeleteFirewallRuleInputItem {
    /** The ID of the DNS Firewall rule to delete. */
    firewallRuleId: string;
}
export interface BatchUpdateFirewallRuleInputItem {
    /** The action to take when a DNS query matches the firewall rule. */
    action?: 'ALLOW' | 'ALERT' | 'BLOCK';
    /** The DNS record type for the custom response when the action is BLOCK. */
    blockOverrideDnsType?: 'CNAME';
    /** The custom domain name for the BLOCK response. */
    blockOverrideDomain?: string;
    /** The TTL value for the custom response when the action is BLOCK. */
    blockOverrideTtl?: number;
    /** The type of block response to return when the action is BLOCK. */
    blockResponse?: 'NODATA' | 'NXDOMAIN' | 'OVERRIDE';
    /** The confidence threshold for advanced threat detection. */
    confidenceThreshold?: 'LOW' | 'MEDIUM' | 'HIGH';
    /** A description of the firewall rule. */
    description?: string;
    /** Whether to enable advanced DNS threat protection for the firewall rule. */
    dnsAdvancedProtection?: 'DGA' | 'DNS_TUNNELING';
    /** The unique identifier of the firewall rule to update. */
    firewallRuleId: string;
    /** A name for the firewall rule. */
    name?: string;
    /** The priority of the firewall rule. */
    priority?: number;
}
export interface AssociateHostedZoneInput {
    /** The ID of the Route 53 private hosted zone to associate with the Route 53 Global Resolver resource. */
    hostedZoneId: string;
    /** Name for the private hosted zone association. */
    name: string;
    /** An Amazon Resource Name (ARN) of the Route 53 Global Resolver the private hosted zone will be associated to. */
    resourceArn: string;
}
export interface BatchCreateFirewallRuleInput {
    /** The BatchCreateFirewallRuleInputItem objects contain the information for each Firewall rule. */
    firewallRules: BatchCreateFirewallRuleInputItem[];
}
export interface BatchDeleteFirewallRuleInput {
    /** An array of the DNS Firewall IDs to be deleted. */
    firewallRules: BatchDeleteFirewallRuleInputItem[];
}
export interface BatchUpdateFirewallRuleInput {
    /** The DNS Firewall rule IDs to be updated. */
    firewallRules: BatchUpdateFirewallRuleInputItem[];
}
export interface CreateAccessSourceInput {
    /** The IP address or CIDR range that is allowed to send DNS queries to the Route 53 Global Resolver. */
    cidr: string;
    /** The ID of the DNS view to associate with this access source. */
    dnsViewId: string;
    /** The DNS protocol that is permitted for this access source. Valid values are Do53 (DNS over port 53), DoT (DNS over TLS), and DoH (DNS over HTTPS). */
    protocol: 'DO53' | 'DOH' | 'DOT';
    /** A unique string that identifies the request and ensures idempotency. */
    clientToken?: string;
    /** The IP address type for this access source. Valid values are IPv4 and IPv6 (if the Route 53 Global Resolver supports dual-stack). */
    ipAddressType?: 'IPV4' | 'IPV6';
    /** A descriptive name for the access source. */
    name?: string;
    /** Tags to associate with the access source. */
    tags?: Record<string, string>;
}
export interface CreateAccessTokenInput {
    /** The ID of the DNS view to associate with this token. */
    dnsViewId: string;
    /** A unique, case-sensitive identifier to ensure idempotency. This means that making the same request multiple times with the same clientToken has the same result every time. */
    clientToken?: string;
    /** The date and time when the token expires. Tokens can have a minimum expiration of 30 days and maximum of 365 days from creation. */
    expiresAt?: string;
    /** A descriptive name for the access token. */
    name?: string;
    /** An array of user-defined keys and optional values. These tags can be used for categorization and organization. */
    tags?: Record<string, string>;
}
export interface CreateDNSViewInput {
    /** The ID of the Route 53 Global Resolver to associate with this DNS view. */
    globalResolverId: string;
    /** A descriptive name for the DNS view. */
    name: string;
    /** A unique string that identifies the request and ensures idempotency. */
    clientToken?: string;
    /** An optional description for the DNS view. */
    description?: string;
    /** Whether to enable DNSSEC validation for DNS queries in this DNS view. When enabled, the resolver verifies the authenticity and integrity of DNS responses from public name servers for DNSSEC-signed dom */
    dnssecValidation?: 'ENABLED' | 'DISABLED';
    /** Whether to enable EDNS Client Subnet injection for DNS queries in this DNS view. When enabled, client subnet information is forwarded to provide more accurate geographic-based DNS responses. */
    ednsClientSubnet?: 'ENABLED' | 'DISABLED';
    /** Determines the behavior when Route 53 Global Resolver cannot apply DNS firewall rules due to service impairment. When enabled, DNS queries are allowed through; when disabled, queries are blocked. */
    firewallRulesFailOpen?: 'ENABLED' | 'DISABLED';
    /** Tags to associate with the DNS view. */
    tags?: Record<string, string>;
}
export interface CreateFirewallDomainListInput {
    /** The ID of the Route 53 Global Resolver that the domain list will be associated with. */
    globalResolverId: string;
    /** A descriptive name for the firewall domain list. */
    name: string;
    /** A unique, case-sensitive identifier to ensure idempotency. This means that making the same request multiple times with the same clientToken has the same result every time. */
    clientToken?: string;
    /** An optional description for the firewall domain list. */
    description?: string;
    /** An array of user-defined keys and optional values. These tags can be used for categorization and organization. */
    tags?: Record<string, string>;
}
export interface CreateFirewallRuleInput {
    /** The action that DNS Firewall should take on a DNS query when it matches one of the domains in the rule's domain list: ALLOW - Permit the request to go through. ALERT - Permit the request and send metr */
    action: 'ALLOW' | 'ALERT' | 'BLOCK';
    /** The ID of the DNS view to associate with this firewall rule. */
    dnsViewId: string;
    /** A descriptive name for the firewall rule. */
    name: string;
    /** The DNS record's type. This determines the format of the record value that you provided in BlockOverrideDomain. Used for the rule action BLOCK with a BlockResponse setting of OVERRIDE. This setting is */
    blockOverrideDnsType?: 'CNAME';
    /** The custom DNS record to send back in response to the query. Used for the rule action BLOCK with a BlockResponse setting of OVERRIDE. This setting is required if the BlockResponse setting is OVERRIDE. */
    blockOverrideDomain?: string;
    /** The recommended amount of time, in seconds, for the DNS resolver or web browser to cache the provided override record. Used for the rule action BLOCK with a BlockResponse setting of OVERRIDE. This set */
    blockOverrideTtl?: number;
    /** The response to return when the action is BLOCK. Valid values are NXDOMAIN (domain does not exist), NODATA (domain exists but no records), or OVERRIDE (return custom response). */
    blockResponse?: 'NODATA' | 'NXDOMAIN' | 'OVERRIDE';
    /** A unique, case-sensitive identifier to ensure idempotency. This means that making the same request multiple times with the same clientToken has the same result every time. */
    clientToken?: string;
    /** The confidence threshold for advanced threat detection. Valid values are HIGH, MEDIUM, or LOW, indicating the accuracy level required for threat detection. */
    confidenceThreshold?: 'LOW' | 'MEDIUM' | 'HIGH';
    /** An optional description for the firewall rule. */
    description?: string;
    /** Whether to enable advanced DNS threat protection for this rule. Advanced protection can detect and block DNS tunneling and Domain Generation Algorithm (DGA) threats. */
    dnsAdvancedProtection?: 'DGA' | 'DNS_TUNNELING';
    /** The ID of the firewall domain list to use in this rule. */
    firewallDomainListId?: string;
    /** The priority of this rule. Rules are evaluated in priority order, with lower numbers having higher priority. When a DNS query matches multiple rules, the rule with the highest priority (lowest number) */
    priority?: number;
    /** The DNS query type to match for this rule. Examples include A (IPv4 address), AAAA (IPv6 address), MX (mail exchange), or TXT (text record). */
    qType?: string;
}
export interface CreateGlobalResolverInput {
    /** A descriptive name for the Route 53 Global Resolver instance. Maximum length of 64 characters. */
    name: string;
    /** List of AWS regions where the Route 53 Global Resolver will operate. The resolver will be distributed across these regions to provide global availability and low-latency DNS resolution. */
    regions: string[];
    /** A unique string that identifies the request and ensures idempotency. If you make multiple requests with the same client token, only one Route 53 Global Resolver is created. */
    clientToken?: string;
    /** An optional description for the Route 53 Global Resolver instance. Maximum length of 1024 characters. */
    description?: string;
    /** The AWS region where query resolution logs and metrics will be aggregated and delivered. If not specified, logging is not enabled. */
    observabilityRegion?: string;
    /** Tags to associate with the Route 53 Global Resolver. Tags are key-value pairs that help you organize and identify your resources. */
    tags?: Record<string, string>;
}
export interface DeleteAccessSourceInput {
    /** The unique identifier of the access source to delete. */
    accessSourceId: string;
}
export interface DeleteAccessTokenInput {
    /** The unique identifier of the access token to delete. */
    accessTokenId: string;
}
export interface DeleteDNSViewInput {
    /** The unique identifier of the DNS view to delete. */
    dnsViewId: string;
}
export interface DeleteFirewallDomainListInput {
    /** The unique identifier of the firewall domain list to delete. */
    firewallDomainListId: string;
}
export interface DeleteFirewallRuleInput {
    /** The unique identifier of the firewall rule to delete. */
    firewallRuleId: string;
}
export interface DeleteGlobalResolverInput {
    /** The unique identifier of the Route 53 Global Resolver to delete. */
    globalResolverId: string;
}
export interface DisableDNSViewInput {
    /** The unique identifier of the DNS view to disable. */
    dnsViewId: string;
}
export interface DisassociateHostedZoneInput {
    /** The ID of the Route 53 private hosted zone to disassociate. */
    hostedZoneId: string;
    /** The Amazon Resource Name (ARN) of the Route 53 Global Resolver resource to disassociate the hosted zone from. */
    resourceArn: string;
}
export interface EnableDNSViewInput {
    /** The unique identifier of the DNS view to enable. */
    dnsViewId: string;
}
export interface GetAccessSourceInput {
    /** The unique identifier of the access source to retrieve. */
    accessSourceId: string;
}
export interface GetAccessTokenInput {
    /** ID of the token. */
    accessTokenId: string;
}
export interface GetDNSViewInput {
    /** The ID of the DNS view to retrieve information about. */
    dnsViewId: string;
}
export interface GetFirewallDomainListInput {
    /** ID of the domain list. */
    firewallDomainListId: string;
}
export interface GetFirewallRuleInput {
    /** ID of the DNS Firewall rule. */
    firewallRuleId: string;
}
export interface GetGlobalResolverInput {
    /** The ID of the Route 53 Global Resolver to retrieve information about. */
    globalResolverId: string;
}
export interface GetHostedZoneAssociationInput {
    /** ID of the private hosted zone association. */
    hostedZoneAssociationId: string;
}
export interface GetManagedFirewallDomainListInput {
    /** ID of the Managed Domain List. */
    managedFirewallDomainListId: string;
}
export interface ImportFirewallDomainsInput {
    /** The fully qualified URL of the file in Amazon S3 that contains the list of domains to import. The file should contain one domain per line. */
    domainFileUrl: string;
    /** ID of the DNS Firewall domain list that you want to import the domain list to. */
    firewallDomainListId: string;
    /** This value is REPLACE, and it updates the domain list to match the list of domains in the imported file. */
    operation: string;
}
export interface ListAccessSourcesInput {
    /** Values to filter the results. */
    filters?: Record<string, string[]>;
    /** The maximum number of results to retrieve in a single call. */
    maxResults?: number;
    /** A pagination token used for large sets of results that can't be returned in a single response. */
    nextToken?: string;
}
export interface ListAccessTokensInput {
    /** The ID of the DNS view to list the tokens for. */
    dnsViewId: string;
    /** Filtering parameters. */
    filters?: Record<string, string[]>;
    /** The maximum number of results to retrieve in a single call. */
    maxResults?: number;
    /** A pagination token used for large sets of results that can't be returned in a single response. */
    nextToken?: string;
}
export interface ListDNSViewsInput {
    /** The Global Resolver ID. */
    globalResolverId: string;
    /** The maximum number of results to retrieve in a single call. */
    maxResults?: number;
    /** A pagination token used for large sets of results that can't be returned in a single response. */
    nextToken?: string;
}
export interface ListFirewallDomainListsInput {
    /** The ID of the Global Resolver that contains the DNS view the domain lists are associated to. */
    globalResolverId?: string;
    /** The maximum number of results to retrieve in a single call. */
    maxResults?: number;
    /** A pagination token used for large sets of results that can't be returned in a single response. */
    nextToken?: string;
}
export interface ListFirewallDomainsInput {
    /** ID of the DNS Firewall domain list. */
    firewallDomainListId: string;
    /** The maximum number of results to retrieve in a single call. */
    maxResults?: number;
    /** A pagination token used for large sets of results that can't be returned in a single response. */
    nextToken?: string;
}
export interface ListFirewallRulesInput {
    /** ID of the DNS view. */
    dnsViewId: string;
    /** Values to filter the results. */
    filters?: Record<string, string[]>;
    /** The maximum number of results to retrieve in a single call. */
    maxResults?: number;
    /** A pagination token used for large sets of results that can't be returned in a single response. */
    nextToken?: string;
}
export interface ListGlobalResolversInput {
    /** The maximum number of Route 53 Global Resolver instances to return in the response. Valid range is 1-100. */
    maxResults?: number;
    /** The token for the next page of results. This value is returned in the response if there are more results to retrieve. */
    nextToken?: string;
}
export interface ListHostedZoneAssociationsInput {
    /** Amazon Resource Name (ARN) of the DNS view. */
    resourceArn: string;
    /** The maximum number of results to retrieve in a single call. */
    maxResults?: number;
    /** A pagination token used for large sets of results that can't be returned in a single response. */
    nextToken?: string;
}
export interface ListManagedFirewallDomainListsInput {
    /** The category of the Manage DNS list either THREAT or CONTENT. */
    managedFirewallDomainListType: string;
    /** The maximum number of results to retrieve in a single call. */
    maxResults?: number;
    /** A pagination token used for large sets of results that can't be returned in a single response. */
    nextToken?: string;
}
export interface ListTagsForResourceInput {
    /** Amazon Resource Name (ARN) for the resource. */
    resourceArn: string;
}
export interface TagResourceInput {
    /** Amazon Resource Name (ARN) of the resource to be tagged. */
    resourceArn: string;
    /** An array of user-defined keys and optional values. These tags can be used for categorization and organization. */
    tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** Amazon Resource Name (ARN) of the resource. */
    resourceArn: string;
    /** The tag keys associated with the resource. */
    tagKeys: string[];
}
export interface UpdateAccessSourceInput {
    /** The unique identifier of the access source to update. */
    accessSourceId: string;
    /** The CIDR block for the access source. */
    cidr?: string;
    /** The IP address type for the access source. */
    ipAddressType?: 'IPV4' | 'IPV6';
    /** The name of the access source. */
    name?: string;
    /** The protocol for the access source. */
    protocol?: 'DO53' | 'DOH' | 'DOT';
}
export interface UpdateAccessTokenInput {
    /** The ID of the token. */
    accessTokenId: string;
    /** The new name of the token. */
    name: string;
}
export interface UpdateDNSViewInput {
    /** The unique identifier of the DNS view to update. */
    dnsViewId: string;
    /** A description of the DNS view. */
    description?: string;
    /** Whether to enable DNSSEC validation for the DNS view. */
    dnssecValidation?: 'ENABLED' | 'DISABLED';
    /** Whether to enable EDNS Client Subnet injection for the DNS view. */
    ednsClientSubnet?: 'ENABLED' | 'DISABLED';
    /** Whether firewall rules should fail open when they cannot be evaluated. */
    firewallRulesFailOpen?: 'ENABLED' | 'DISABLED';
    /** The name of the DNS view. */
    name?: string;
}
export interface UpdateFirewallDomainsInput {
    /** A list of the domains. You can add up to 1000 domains per request. */
    domains: string[];
    /** The ID of the DNS Firewall domain list to which you want to add the domains. */
    firewallDomainListId: string;
    /** The operation for updating the domain list. The allowed values are ADD, REMOVE, and REPLACE. */
    operation: string;
}
export interface UpdateFirewallRuleInput {
    /** A unique, case-sensitive identifier to ensure idempotency. This means that making the same request multiple times with the same clientToken has the same result every time. */
    clientToken: string;
    /** The ID of the DNS Firewall rule. */
    firewallRuleId: string;
    /** The action that DNS Firewall should take on a DNS query when it matches one of the domains in the rule's domain list, or a threat in a DNS Firewall Advanced rule. */
    action?: 'ALLOW' | 'ALERT' | 'BLOCK';
    /** The DNS record's type. This determines the format of the record value that you provided in BlockOverrideDomain. Used for the rule action BLOCK with a BlockResponse setting of OVERRIDE. */
    blockOverrideDnsType?: 'CNAME';
    /** The custom DNS record to send back in response to the query. Used for the rule action BLOCK with a BlockResponse setting of OVERRIDE. */
    blockOverrideDomain?: string;
    /** The recommended amount of time, in seconds, for the DNS resolver or web browser to cache the provided override record. Used for the rule action BLOCK with a BlockResponse setting of OVERRIDE. */
    blockOverrideTtl?: number;
    /** The way that you want DNS Firewall to block the request. Used for the rule action setting BLOCK. */
    blockResponse?: 'NODATA' | 'NXDOMAIN' | 'OVERRIDE';
    /** The confidence threshold for DNS Firewall Advanced. You must provide this value when you create a DNS Firewall Advanced rule. */
    confidenceThreshold?: 'LOW' | 'MEDIUM' | 'HIGH';
    /** The description for the Firewall rule. */
    description?: string;
    /** The type of the DNS Firewall Advanced rule. Valid values are DGA and DNS_TUNNELING. */
    dnsAdvancedProtection?: 'DGA' | 'DNS_TUNNELING';
    /** The name of the DNS Firewall rule. */
    name?: string;
    /** The setting that determines the processing order of the rule in the rule group. DNS Firewall processes the rules in a rule group by order of priority, starting from the lowest setting. */
    priority?: number;
}
export interface UpdateGlobalResolverInput {
    /** The ID of the Global Resolver. */
    globalResolverId: string;
    /** The description of the Global Resolver. */
    description?: string;
    /** The name of the Global Resolver. */
    name?: string;
    /** The AWS Regions in which the users' Global Resolver query resolution logs will be propagated. */
    observabilityRegion?: string;
}
export interface UpdateHostedZoneAssociationInput {
    /** The ID of the private hosted zone association. */
    hostedZoneAssociationId: string;
    /** The name you want to update the hosted zone association to. */
    name?: string;
}
/** Route53GlobalResolver service binding for Step Functions SDK integrations. */
export declare class Route53GlobalResolver {
    constructor();
    associateHostedZone<T>(params: AssociateHostedZoneInput): Promise<T>;
    batchCreateFirewallRule<T>(params: BatchCreateFirewallRuleInput): Promise<T>;
    batchDeleteFirewallRule<T>(params: BatchDeleteFirewallRuleInput): Promise<T>;
    batchUpdateFirewallRule<T>(params: BatchUpdateFirewallRuleInput): Promise<T>;
    createAccessSource<T>(params: CreateAccessSourceInput): Promise<T>;
    createAccessToken<T>(params: CreateAccessTokenInput): Promise<T>;
    createDNSView<T>(params: CreateDNSViewInput): Promise<T>;
    createFirewallDomainList<T>(params: CreateFirewallDomainListInput): Promise<T>;
    createFirewallRule<T>(params: CreateFirewallRuleInput): Promise<T>;
    createGlobalResolver<T>(params: CreateGlobalResolverInput): Promise<T>;
    deleteAccessSource<T>(params: DeleteAccessSourceInput): Promise<T>;
    deleteAccessToken<T>(params: DeleteAccessTokenInput): Promise<T>;
    deleteDNSView<T>(params: DeleteDNSViewInput): Promise<T>;
    deleteFirewallDomainList<T>(params: DeleteFirewallDomainListInput): Promise<T>;
    deleteFirewallRule<T>(params: DeleteFirewallRuleInput): Promise<T>;
    deleteGlobalResolver<T>(params: DeleteGlobalResolverInput): Promise<T>;
    disableDNSView<T>(params: DisableDNSViewInput): Promise<T>;
    disassociateHostedZone<T>(params: DisassociateHostedZoneInput): Promise<T>;
    enableDNSView<T>(params: EnableDNSViewInput): Promise<T>;
    getAccessSource<T>(params: GetAccessSourceInput): Promise<T>;
    getAccessToken<T>(params: GetAccessTokenInput): Promise<T>;
    getDNSView<T>(params: GetDNSViewInput): Promise<T>;
    getFirewallDomainList<T>(params: GetFirewallDomainListInput): Promise<T>;
    getFirewallRule<T>(params: GetFirewallRuleInput): Promise<T>;
    getGlobalResolver<T>(params: GetGlobalResolverInput): Promise<T>;
    getHostedZoneAssociation<T>(params: GetHostedZoneAssociationInput): Promise<T>;
    getManagedFirewallDomainList<T>(params: GetManagedFirewallDomainListInput): Promise<T>;
    importFirewallDomains<T>(params: ImportFirewallDomainsInput): Promise<T>;
    listAccessSources<T>(params: ListAccessSourcesInput): Promise<T>;
    listAccessTokens<T>(params: ListAccessTokensInput): Promise<T>;
    listDNSViews<T>(params: ListDNSViewsInput): Promise<T>;
    listFirewallDomainLists<T>(params: ListFirewallDomainListsInput): Promise<T>;
    listFirewallDomains<T>(params: ListFirewallDomainsInput): Promise<T>;
    listFirewallRules<T>(params: ListFirewallRulesInput): Promise<T>;
    listGlobalResolvers<T>(params: ListGlobalResolversInput): Promise<T>;
    listHostedZoneAssociations<T>(params: ListHostedZoneAssociationsInput): Promise<T>;
    listManagedFirewallDomainLists<T>(params: ListManagedFirewallDomainListsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateAccessSource<T>(params: UpdateAccessSourceInput): Promise<T>;
    updateAccessToken<T>(params: UpdateAccessTokenInput): Promise<T>;
    updateDNSView<T>(params: UpdateDNSViewInput): Promise<T>;
    updateFirewallDomains<T>(params: UpdateFirewallDomainsInput): Promise<T>;
    updateFirewallRule<T>(params: UpdateFirewallRuleInput): Promise<T>;
    updateGlobalResolver<T>(params: UpdateGlobalResolverInput): Promise<T>;
    updateHostedZoneAssociation<T>(params: UpdateHostedZoneAssociationInput): Promise<T>;
}
//# sourceMappingURL=Route53GlobalResolver.d.ts.map