/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface CloudTasksQueueConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#id CloudTasksQueue#id}
    *
    * Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2.
    * If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable.
    */
    readonly id?: string;
    /**
    * The location of the queue
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#location CloudTasksQueue#location}
    */
    readonly location: string;
    /**
    * The queue name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#name CloudTasksQueue#name}
    */
    readonly name?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#project CloudTasksQueue#project}
    */
    readonly project?: string;
    /**
    * app_engine_routing_override block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#app_engine_routing_override CloudTasksQueue#app_engine_routing_override}
    */
    readonly appEngineRoutingOverride?: CloudTasksQueueAppEngineRoutingOverride;
    /**
    * http_target block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#http_target CloudTasksQueue#http_target}
    */
    readonly httpTarget?: CloudTasksQueueHttpTarget;
    /**
    * rate_limits block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#rate_limits CloudTasksQueue#rate_limits}
    */
    readonly rateLimits?: CloudTasksQueueRateLimits;
    /**
    * retry_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#retry_config CloudTasksQueue#retry_config}
    */
    readonly retryConfig?: CloudTasksQueueRetryConfig;
    /**
    * stackdriver_logging_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#stackdriver_logging_config CloudTasksQueue#stackdriver_logging_config}
    */
    readonly stackdriverLoggingConfig?: CloudTasksQueueStackdriverLoggingConfig;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#timeouts CloudTasksQueue#timeouts}
    */
    readonly timeouts?: CloudTasksQueueTimeouts;
}
export interface CloudTasksQueueAppEngineRoutingOverride {
    /**
    * App instance.
    *
    * By default, the task is sent to an instance which is available when the task is attempted.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#instance CloudTasksQueue#instance}
    */
    readonly instance?: string;
    /**
    * App service.
    *
    * By default, the task is sent to the service which is the default service when the task is attempted.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#service CloudTasksQueue#service}
    */
    readonly service?: string;
    /**
    * App version.
    *
    * By default, the task is sent to the version which is the default version when the task is attempted.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#version CloudTasksQueue#version}
    */
    readonly version?: string;
}
export declare function cloudTasksQueueAppEngineRoutingOverrideToTerraform(struct?: CloudTasksQueueAppEngineRoutingOverrideOutputReference | CloudTasksQueueAppEngineRoutingOverride): any;
export declare function cloudTasksQueueAppEngineRoutingOverrideToHclTerraform(struct?: CloudTasksQueueAppEngineRoutingOverrideOutputReference | CloudTasksQueueAppEngineRoutingOverride): any;
export declare class CloudTasksQueueAppEngineRoutingOverrideOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): CloudTasksQueueAppEngineRoutingOverride | undefined;
    set internalValue(value: CloudTasksQueueAppEngineRoutingOverride | undefined);
    get host(): string;
    private _instance?;
    get instance(): string;
    set instance(value: string);
    resetInstance(): void;
    get instanceInput(): string | undefined;
    private _service?;
    get service(): string;
    set service(value: string);
    resetService(): void;
    get serviceInput(): string | undefined;
    private _version?;
    get version(): string;
    set version(value: string);
    resetVersion(): void;
    get versionInput(): string | undefined;
}
export interface CloudTasksQueueHttpTargetHeaderOverridesHeader {
    /**
    * The Key of the header.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#key CloudTasksQueue#key}
    */
    readonly key: string;
    /**
    * The Value of the header.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#value CloudTasksQueue#value}
    */
    readonly value: string;
}
export declare function cloudTasksQueueHttpTargetHeaderOverridesHeaderToTerraform(struct?: CloudTasksQueueHttpTargetHeaderOverridesHeaderOutputReference | CloudTasksQueueHttpTargetHeaderOverridesHeader): any;
export declare function cloudTasksQueueHttpTargetHeaderOverridesHeaderToHclTerraform(struct?: CloudTasksQueueHttpTargetHeaderOverridesHeaderOutputReference | CloudTasksQueueHttpTargetHeaderOverridesHeader): any;
export declare class CloudTasksQueueHttpTargetHeaderOverridesHeaderOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): CloudTasksQueueHttpTargetHeaderOverridesHeader | undefined;
    set internalValue(value: CloudTasksQueueHttpTargetHeaderOverridesHeader | undefined);
    private _key?;
    get key(): string;
    set key(value: string);
    get keyInput(): string | undefined;
    private _value?;
    get value(): string;
    set value(value: string);
    get valueInput(): string | undefined;
}
export interface CloudTasksQueueHttpTargetHeaderOverrides {
    /**
    * header block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#header CloudTasksQueue#header}
    */
    readonly header: CloudTasksQueueHttpTargetHeaderOverridesHeader;
}
export declare function cloudTasksQueueHttpTargetHeaderOverridesToTerraform(struct?: CloudTasksQueueHttpTargetHeaderOverrides | cdktf.IResolvable): any;
export declare function cloudTasksQueueHttpTargetHeaderOverridesToHclTerraform(struct?: CloudTasksQueueHttpTargetHeaderOverrides | cdktf.IResolvable): any;
export declare class CloudTasksQueueHttpTargetHeaderOverridesOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): CloudTasksQueueHttpTargetHeaderOverrides | cdktf.IResolvable | undefined;
    set internalValue(value: CloudTasksQueueHttpTargetHeaderOverrides | cdktf.IResolvable | undefined);
    private _header;
    get header(): CloudTasksQueueHttpTargetHeaderOverridesHeaderOutputReference;
    putHeader(value: CloudTasksQueueHttpTargetHeaderOverridesHeader): void;
    get headerInput(): CloudTasksQueueHttpTargetHeaderOverridesHeader | undefined;
}
export declare class CloudTasksQueueHttpTargetHeaderOverridesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: CloudTasksQueueHttpTargetHeaderOverrides[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): CloudTasksQueueHttpTargetHeaderOverridesOutputReference;
}
export interface CloudTasksQueueHttpTargetOauthToken {
    /**
    * OAuth scope to be used for generating OAuth access token.
    * If not specified, "https://www.googleapis.com/auth/cloud-platform" will be used.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#scope CloudTasksQueue#scope}
    */
    readonly scope?: string;
    /**
    * Service account email to be used for generating OAuth token.
    * The service account must be within the same project as the queue.
    * The caller must have iam.serviceAccounts.actAs permission for the service account.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#service_account_email CloudTasksQueue#service_account_email}
    */
    readonly serviceAccountEmail: string;
}
export declare function cloudTasksQueueHttpTargetOauthTokenToTerraform(struct?: CloudTasksQueueHttpTargetOauthTokenOutputReference | CloudTasksQueueHttpTargetOauthToken): any;
export declare function cloudTasksQueueHttpTargetOauthTokenToHclTerraform(struct?: CloudTasksQueueHttpTargetOauthTokenOutputReference | CloudTasksQueueHttpTargetOauthToken): any;
export declare class CloudTasksQueueHttpTargetOauthTokenOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): CloudTasksQueueHttpTargetOauthToken | undefined;
    set internalValue(value: CloudTasksQueueHttpTargetOauthToken | undefined);
    private _scope?;
    get scope(): string;
    set scope(value: string);
    resetScope(): void;
    get scopeInput(): string | undefined;
    private _serviceAccountEmail?;
    get serviceAccountEmail(): string;
    set serviceAccountEmail(value: string);
    get serviceAccountEmailInput(): string | undefined;
}
export interface CloudTasksQueueHttpTargetOidcToken {
    /**
    * Audience to be used when generating OIDC token. If not specified, the URI specified in target will be used.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#audience CloudTasksQueue#audience}
    */
    readonly audience?: string;
    /**
    * Service account email to be used for generating OIDC token.
    * The service account must be within the same project as the queue.
    * The caller must have iam.serviceAccounts.actAs permission for the service account.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#service_account_email CloudTasksQueue#service_account_email}
    */
    readonly serviceAccountEmail: string;
}
export declare function cloudTasksQueueHttpTargetOidcTokenToTerraform(struct?: CloudTasksQueueHttpTargetOidcTokenOutputReference | CloudTasksQueueHttpTargetOidcToken): any;
export declare function cloudTasksQueueHttpTargetOidcTokenToHclTerraform(struct?: CloudTasksQueueHttpTargetOidcTokenOutputReference | CloudTasksQueueHttpTargetOidcToken): any;
export declare class CloudTasksQueueHttpTargetOidcTokenOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): CloudTasksQueueHttpTargetOidcToken | undefined;
    set internalValue(value: CloudTasksQueueHttpTargetOidcToken | undefined);
    private _audience?;
    get audience(): string;
    set audience(value: string);
    resetAudience(): void;
    get audienceInput(): string | undefined;
    private _serviceAccountEmail?;
    get serviceAccountEmail(): string;
    set serviceAccountEmail(value: string);
    get serviceAccountEmailInput(): string | undefined;
}
export interface CloudTasksQueueHttpTargetUriOverridePathOverride {
    /**
    * The URI path (e.g., /users/1234). Default is an empty string.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#path CloudTasksQueue#path}
    */
    readonly path?: string;
}
export declare function cloudTasksQueueHttpTargetUriOverridePathOverrideToTerraform(struct?: CloudTasksQueueHttpTargetUriOverridePathOverrideOutputReference | CloudTasksQueueHttpTargetUriOverridePathOverride): any;
export declare function cloudTasksQueueHttpTargetUriOverridePathOverrideToHclTerraform(struct?: CloudTasksQueueHttpTargetUriOverridePathOverrideOutputReference | CloudTasksQueueHttpTargetUriOverridePathOverride): any;
export declare class CloudTasksQueueHttpTargetUriOverridePathOverrideOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): CloudTasksQueueHttpTargetUriOverridePathOverride | undefined;
    set internalValue(value: CloudTasksQueueHttpTargetUriOverridePathOverride | undefined);
    private _path?;
    get path(): string;
    set path(value: string);
    resetPath(): void;
    get pathInput(): string | undefined;
}
export interface CloudTasksQueueHttpTargetUriOverrideQueryOverride {
    /**
    * The query parameters (e.g., qparam1=123&qparam2=456). Default is an empty string.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#query_params CloudTasksQueue#query_params}
    */
    readonly queryParams?: string;
}
export declare function cloudTasksQueueHttpTargetUriOverrideQueryOverrideToTerraform(struct?: CloudTasksQueueHttpTargetUriOverrideQueryOverrideOutputReference | CloudTasksQueueHttpTargetUriOverrideQueryOverride): any;
export declare function cloudTasksQueueHttpTargetUriOverrideQueryOverrideToHclTerraform(struct?: CloudTasksQueueHttpTargetUriOverrideQueryOverrideOutputReference | CloudTasksQueueHttpTargetUriOverrideQueryOverride): any;
export declare class CloudTasksQueueHttpTargetUriOverrideQueryOverrideOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): CloudTasksQueueHttpTargetUriOverrideQueryOverride | undefined;
    set internalValue(value: CloudTasksQueueHttpTargetUriOverrideQueryOverride | undefined);
    private _queryParams?;
    get queryParams(): string;
    set queryParams(value: string);
    resetQueryParams(): void;
    get queryParamsInput(): string | undefined;
}
export interface CloudTasksQueueHttpTargetUriOverride {
    /**
    * Host override.
    *
    * When specified, replaces the host part of the task URL.
    * For example, if the task URL is "https://www.google.com", and host value
    * is set to "example.net", the overridden URI will be changed to "https://example.net".
    * Host value cannot be an empty string (INVALID_ARGUMENT).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#host CloudTasksQueue#host}
    */
    readonly host?: string;
    /**
    * Port override.
    *
    * When specified, replaces the port part of the task URI.
    * For instance, for a URI http://www.google.com/foo and port=123, the overridden URI becomes http://www.google.com:123/foo.
    * Note that the port value must be a positive integer.
    * Setting the port to 0 (Zero) clears the URI port.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#port CloudTasksQueue#port}
    */
    readonly port?: string;
    /**
    * Scheme override.
    *
    * When specified, the task URI scheme is replaced by the provided value (HTTP or HTTPS). Possible values: ["HTTP", "HTTPS"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#scheme CloudTasksQueue#scheme}
    */
    readonly scheme?: string;
    /**
    * URI Override Enforce Mode
    *
    * When specified, determines the Target UriOverride mode. If not specified, it defaults to ALWAYS. Possible values: ["ALWAYS", "IF_NOT_EXISTS"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#uri_override_enforce_mode CloudTasksQueue#uri_override_enforce_mode}
    */
    readonly uriOverrideEnforceMode?: string;
    /**
    * path_override block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#path_override CloudTasksQueue#path_override}
    */
    readonly pathOverride?: CloudTasksQueueHttpTargetUriOverridePathOverride;
    /**
    * query_override block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#query_override CloudTasksQueue#query_override}
    */
    readonly queryOverride?: CloudTasksQueueHttpTargetUriOverrideQueryOverride;
}
export declare function cloudTasksQueueHttpTargetUriOverrideToTerraform(struct?: CloudTasksQueueHttpTargetUriOverrideOutputReference | CloudTasksQueueHttpTargetUriOverride): any;
export declare function cloudTasksQueueHttpTargetUriOverrideToHclTerraform(struct?: CloudTasksQueueHttpTargetUriOverrideOutputReference | CloudTasksQueueHttpTargetUriOverride): any;
export declare class CloudTasksQueueHttpTargetUriOverrideOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): CloudTasksQueueHttpTargetUriOverride | undefined;
    set internalValue(value: CloudTasksQueueHttpTargetUriOverride | undefined);
    private _host?;
    get host(): string;
    set host(value: string);
    resetHost(): void;
    get hostInput(): string | undefined;
    private _port?;
    get port(): string;
    set port(value: string);
    resetPort(): void;
    get portInput(): string | undefined;
    private _scheme?;
    get scheme(): string;
    set scheme(value: string);
    resetScheme(): void;
    get schemeInput(): string | undefined;
    private _uriOverrideEnforceMode?;
    get uriOverrideEnforceMode(): string;
    set uriOverrideEnforceMode(value: string);
    resetUriOverrideEnforceMode(): void;
    get uriOverrideEnforceModeInput(): string | undefined;
    private _pathOverride;
    get pathOverride(): CloudTasksQueueHttpTargetUriOverridePathOverrideOutputReference;
    putPathOverride(value: CloudTasksQueueHttpTargetUriOverridePathOverride): void;
    resetPathOverride(): void;
    get pathOverrideInput(): CloudTasksQueueHttpTargetUriOverridePathOverride | undefined;
    private _queryOverride;
    get queryOverride(): CloudTasksQueueHttpTargetUriOverrideQueryOverrideOutputReference;
    putQueryOverride(value: CloudTasksQueueHttpTargetUriOverrideQueryOverride): void;
    resetQueryOverride(): void;
    get queryOverrideInput(): CloudTasksQueueHttpTargetUriOverrideQueryOverride | undefined;
}
export interface CloudTasksQueueHttpTarget {
    /**
    * The HTTP method to use for the request.
    *
    * When specified, it overrides HttpRequest for the task.
    * Note that if the value is set to GET the body of the task will be ignored at execution time. Possible values: ["HTTP_METHOD_UNSPECIFIED", "POST", "GET", "HEAD", "PUT", "DELETE", "PATCH", "OPTIONS"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#http_method CloudTasksQueue#http_method}
    */
    readonly httpMethod?: string;
    /**
    * header_overrides block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#header_overrides CloudTasksQueue#header_overrides}
    */
    readonly headerOverrides?: CloudTasksQueueHttpTargetHeaderOverrides[] | cdktf.IResolvable;
    /**
    * oauth_token block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#oauth_token CloudTasksQueue#oauth_token}
    */
    readonly oauthToken?: CloudTasksQueueHttpTargetOauthToken;
    /**
    * oidc_token block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#oidc_token CloudTasksQueue#oidc_token}
    */
    readonly oidcToken?: CloudTasksQueueHttpTargetOidcToken;
    /**
    * uri_override block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#uri_override CloudTasksQueue#uri_override}
    */
    readonly uriOverride?: CloudTasksQueueHttpTargetUriOverride;
}
export declare function cloudTasksQueueHttpTargetToTerraform(struct?: CloudTasksQueueHttpTargetOutputReference | CloudTasksQueueHttpTarget): any;
export declare function cloudTasksQueueHttpTargetToHclTerraform(struct?: CloudTasksQueueHttpTargetOutputReference | CloudTasksQueueHttpTarget): any;
export declare class CloudTasksQueueHttpTargetOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): CloudTasksQueueHttpTarget | undefined;
    set internalValue(value: CloudTasksQueueHttpTarget | undefined);
    private _httpMethod?;
    get httpMethod(): string;
    set httpMethod(value: string);
    resetHttpMethod(): void;
    get httpMethodInput(): string | undefined;
    private _headerOverrides;
    get headerOverrides(): CloudTasksQueueHttpTargetHeaderOverridesList;
    putHeaderOverrides(value: CloudTasksQueueHttpTargetHeaderOverrides[] | cdktf.IResolvable): void;
    resetHeaderOverrides(): void;
    get headerOverridesInput(): cdktf.IResolvable | CloudTasksQueueHttpTargetHeaderOverrides[] | undefined;
    private _oauthToken;
    get oauthToken(): CloudTasksQueueHttpTargetOauthTokenOutputReference;
    putOauthToken(value: CloudTasksQueueHttpTargetOauthToken): void;
    resetOauthToken(): void;
    get oauthTokenInput(): CloudTasksQueueHttpTargetOauthToken | undefined;
    private _oidcToken;
    get oidcToken(): CloudTasksQueueHttpTargetOidcTokenOutputReference;
    putOidcToken(value: CloudTasksQueueHttpTargetOidcToken): void;
    resetOidcToken(): void;
    get oidcTokenInput(): CloudTasksQueueHttpTargetOidcToken | undefined;
    private _uriOverride;
    get uriOverride(): CloudTasksQueueHttpTargetUriOverrideOutputReference;
    putUriOverride(value: CloudTasksQueueHttpTargetUriOverride): void;
    resetUriOverride(): void;
    get uriOverrideInput(): CloudTasksQueueHttpTargetUriOverride | undefined;
}
export interface CloudTasksQueueRateLimits {
    /**
    * The maximum number of concurrent tasks that Cloud Tasks allows to
    * be dispatched for this queue. After this threshold has been
    * reached, Cloud Tasks stops dispatching tasks until the number of
    * concurrent requests decreases.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#max_concurrent_dispatches CloudTasksQueue#max_concurrent_dispatches}
    */
    readonly maxConcurrentDispatches?: number;
    /**
    * The maximum rate at which tasks are dispatched from this queue.
    *
    * If unspecified when the queue is created, Cloud Tasks will pick the default.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#max_dispatches_per_second CloudTasksQueue#max_dispatches_per_second}
    */
    readonly maxDispatchesPerSecond?: number;
}
export declare function cloudTasksQueueRateLimitsToTerraform(struct?: CloudTasksQueueRateLimitsOutputReference | CloudTasksQueueRateLimits): any;
export declare function cloudTasksQueueRateLimitsToHclTerraform(struct?: CloudTasksQueueRateLimitsOutputReference | CloudTasksQueueRateLimits): any;
export declare class CloudTasksQueueRateLimitsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): CloudTasksQueueRateLimits | undefined;
    set internalValue(value: CloudTasksQueueRateLimits | undefined);
    get maxBurstSize(): number;
    private _maxConcurrentDispatches?;
    get maxConcurrentDispatches(): number;
    set maxConcurrentDispatches(value: number);
    resetMaxConcurrentDispatches(): void;
    get maxConcurrentDispatchesInput(): number | undefined;
    private _maxDispatchesPerSecond?;
    get maxDispatchesPerSecond(): number;
    set maxDispatchesPerSecond(value: number);
    resetMaxDispatchesPerSecond(): void;
    get maxDispatchesPerSecondInput(): number | undefined;
}
export interface CloudTasksQueueRetryConfig {
    /**
    * Number of attempts per task.
    *
    * Cloud Tasks will attempt the task maxAttempts times (that is, if
    * the first attempt fails, then there will be maxAttempts - 1
    * retries). Must be >= -1.
    *
    * If unspecified when the queue is created, Cloud Tasks will pick
    * the default.
    *
    * -1 indicates unlimited attempts.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#max_attempts CloudTasksQueue#max_attempts}
    */
    readonly maxAttempts?: number;
    /**
    * A task will be scheduled for retry between minBackoff and
    * maxBackoff duration after it fails, if the queue's RetryConfig
    * specifies that the task should be retried.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#max_backoff CloudTasksQueue#max_backoff}
    */
    readonly maxBackoff?: string;
    /**
    * The time between retries will double maxDoublings times.
    *
    * A task's retry interval starts at minBackoff, then doubles maxDoublings times,
    * then increases linearly, and finally retries retries at intervals of maxBackoff
    * up to maxAttempts times.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#max_doublings CloudTasksQueue#max_doublings}
    */
    readonly maxDoublings?: number;
    /**
    * If positive, maxRetryDuration specifies the time limit for
    * retrying a failed task, measured from when the task was first
    * attempted. Once maxRetryDuration time has passed and the task has
    * been attempted maxAttempts times, no further attempts will be
    * made and the task will be deleted.
    *
    * If zero, then the task age is unlimited.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#max_retry_duration CloudTasksQueue#max_retry_duration}
    */
    readonly maxRetryDuration?: string;
    /**
    * A task will be scheduled for retry between minBackoff and
    * maxBackoff duration after it fails, if the queue's RetryConfig
    * specifies that the task should be retried.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#min_backoff CloudTasksQueue#min_backoff}
    */
    readonly minBackoff?: string;
}
export declare function cloudTasksQueueRetryConfigToTerraform(struct?: CloudTasksQueueRetryConfigOutputReference | CloudTasksQueueRetryConfig): any;
export declare function cloudTasksQueueRetryConfigToHclTerraform(struct?: CloudTasksQueueRetryConfigOutputReference | CloudTasksQueueRetryConfig): any;
export declare class CloudTasksQueueRetryConfigOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): CloudTasksQueueRetryConfig | undefined;
    set internalValue(value: CloudTasksQueueRetryConfig | undefined);
    private _maxAttempts?;
    get maxAttempts(): number;
    set maxAttempts(value: number);
    resetMaxAttempts(): void;
    get maxAttemptsInput(): number | undefined;
    private _maxBackoff?;
    get maxBackoff(): string;
    set maxBackoff(value: string);
    resetMaxBackoff(): void;
    get maxBackoffInput(): string | undefined;
    private _maxDoublings?;
    get maxDoublings(): number;
    set maxDoublings(value: number);
    resetMaxDoublings(): void;
    get maxDoublingsInput(): number | undefined;
    private _maxRetryDuration?;
    get maxRetryDuration(): string;
    set maxRetryDuration(value: string);
    resetMaxRetryDuration(): void;
    get maxRetryDurationInput(): string | undefined;
    private _minBackoff?;
    get minBackoff(): string;
    set minBackoff(value: string);
    resetMinBackoff(): void;
    get minBackoffInput(): string | undefined;
}
export interface CloudTasksQueueStackdriverLoggingConfig {
    /**
    * Specifies the fraction of operations to write to Stackdriver Logging.
    * This field may contain any value between 0.0 and 1.0, inclusive. 0.0 is the
    * default and means that no operations are logged.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#sampling_ratio CloudTasksQueue#sampling_ratio}
    */
    readonly samplingRatio: number;
}
export declare function cloudTasksQueueStackdriverLoggingConfigToTerraform(struct?: CloudTasksQueueStackdriverLoggingConfigOutputReference | CloudTasksQueueStackdriverLoggingConfig): any;
export declare function cloudTasksQueueStackdriverLoggingConfigToHclTerraform(struct?: CloudTasksQueueStackdriverLoggingConfigOutputReference | CloudTasksQueueStackdriverLoggingConfig): any;
export declare class CloudTasksQueueStackdriverLoggingConfigOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): CloudTasksQueueStackdriverLoggingConfig | undefined;
    set internalValue(value: CloudTasksQueueStackdriverLoggingConfig | undefined);
    private _samplingRatio?;
    get samplingRatio(): number;
    set samplingRatio(value: number);
    get samplingRatioInput(): number | undefined;
}
export interface CloudTasksQueueTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#create CloudTasksQueue#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#delete CloudTasksQueue#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#update CloudTasksQueue#update}
    */
    readonly update?: string;
}
export declare function cloudTasksQueueTimeoutsToTerraform(struct?: CloudTasksQueueTimeouts | cdktf.IResolvable): any;
export declare function cloudTasksQueueTimeoutsToHclTerraform(struct?: CloudTasksQueueTimeouts | cdktf.IResolvable): any;
export declare class CloudTasksQueueTimeoutsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): CloudTasksQueueTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: CloudTasksQueueTimeouts | cdktf.IResolvable | undefined);
    private _create?;
    get create(): string;
    set create(value: string);
    resetCreate(): void;
    get createInput(): string | undefined;
    private _delete?;
    get delete(): string;
    set delete(value: string);
    resetDelete(): void;
    get deleteInput(): string | undefined;
    private _update?;
    get update(): string;
    set update(value: string);
    resetUpdate(): void;
    get updateInput(): string | undefined;
}
/**
* Represents a {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue google_cloud_tasks_queue}
*/
export declare class CloudTasksQueue extends cdktf.TerraformResource {
    static readonly tfResourceType = "google_cloud_tasks_queue";
    /**
    * Generates CDKTF code for importing a CloudTasksQueue resource upon running "cdktf plan <stack-name>"
    * @param scope The scope in which to define this construct
    * @param importToId The construct id used in the generated config for the CloudTasksQueue to import
    * @param importFromId The id of the existing CloudTasksQueue that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the CloudTasksQueue to import is found
    */
    static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): cdktf.ImportableResource;
    /**
    * Create a new {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/cloud_tasks_queue google_cloud_tasks_queue} Resource
    *
    * @param scope The scope in which to define this construct
    * @param id The scoped construct ID. Must be unique amongst siblings in the same scope
    * @param options CloudTasksQueueConfig
    */
    constructor(scope: Construct, id: string, config: CloudTasksQueueConfig);
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    private _location?;
    get location(): string;
    set location(value: string);
    get locationInput(): string | undefined;
    private _name?;
    get name(): string;
    set name(value: string);
    resetName(): void;
    get nameInput(): string | undefined;
    private _project?;
    get project(): string;
    set project(value: string);
    resetProject(): void;
    get projectInput(): string | undefined;
    private _appEngineRoutingOverride;
    get appEngineRoutingOverride(): CloudTasksQueueAppEngineRoutingOverrideOutputReference;
    putAppEngineRoutingOverride(value: CloudTasksQueueAppEngineRoutingOverride): void;
    resetAppEngineRoutingOverride(): void;
    get appEngineRoutingOverrideInput(): CloudTasksQueueAppEngineRoutingOverride | undefined;
    private _httpTarget;
    get httpTarget(): CloudTasksQueueHttpTargetOutputReference;
    putHttpTarget(value: CloudTasksQueueHttpTarget): void;
    resetHttpTarget(): void;
    get httpTargetInput(): CloudTasksQueueHttpTarget | undefined;
    private _rateLimits;
    get rateLimits(): CloudTasksQueueRateLimitsOutputReference;
    putRateLimits(value: CloudTasksQueueRateLimits): void;
    resetRateLimits(): void;
    get rateLimitsInput(): CloudTasksQueueRateLimits | undefined;
    private _retryConfig;
    get retryConfig(): CloudTasksQueueRetryConfigOutputReference;
    putRetryConfig(value: CloudTasksQueueRetryConfig): void;
    resetRetryConfig(): void;
    get retryConfigInput(): CloudTasksQueueRetryConfig | undefined;
    private _stackdriverLoggingConfig;
    get stackdriverLoggingConfig(): CloudTasksQueueStackdriverLoggingConfigOutputReference;
    putStackdriverLoggingConfig(value: CloudTasksQueueStackdriverLoggingConfig): void;
    resetStackdriverLoggingConfig(): void;
    get stackdriverLoggingConfigInput(): CloudTasksQueueStackdriverLoggingConfig | undefined;
    private _timeouts;
    get timeouts(): CloudTasksQueueTimeoutsOutputReference;
    putTimeouts(value: CloudTasksQueueTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | CloudTasksQueueTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
