/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface UpcloudProviderConfig {
    /**
    * Password for UpCloud API user. Can also be configured using the `UPCLOUD_PASSWORD` environment variable.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs#password UpcloudProvider#password}
    */
    readonly password?: string;
    /**
    * The duration (in seconds) that the provider waits for an HTTP request towards UpCloud API to complete. Defaults to 120 seconds
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs#request_timeout_sec UpcloudProvider#request_timeout_sec}
    */
    readonly requestTimeoutSec?: number;
    /**
    * Maximum number of retries
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs#retry_max UpcloudProvider#retry_max}
    */
    readonly retryMax?: number;
    /**
    * Maximum time to wait between retries
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs#retry_wait_max_sec UpcloudProvider#retry_wait_max_sec}
    */
    readonly retryWaitMaxSec?: number;
    /**
    * Minimum time to wait between retries
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs#retry_wait_min_sec UpcloudProvider#retry_wait_min_sec}
    */
    readonly retryWaitMinSec?: number;
    /**
    * Token for authenticating to UpCloud API. Can also be configured using the `UPCLOUD_TOKEN` environment variable. (EXPERIMENTAL)
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs#token UpcloudProvider#token}
    */
    readonly token?: string;
    /**
    * UpCloud username with API access. Can also be configured using the `UPCLOUD_USERNAME` environment variable.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs#username UpcloudProvider#username}
    */
    readonly username?: string;
    /**
    * Alias name
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs#alias UpcloudProvider#alias}
    */
    readonly alias?: string;
}
/**
* Represents a {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs upcloud}
*/
export declare class UpcloudProvider extends cdktf.TerraformProvider {
    static readonly tfResourceType = "upcloud";
    /**
    * Generates CDKTF code for importing a UpcloudProvider 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 UpcloudProvider to import
    * @param importFromId The id of the existing UpcloudProvider that should be imported. Refer to the {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.20.5/docs#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the UpcloudProvider 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/upcloudltd/upcloud/5.20.5/docs upcloud} 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 UpcloudProviderConfig = {}
    */
    constructor(scope: Construct, id: string, config?: UpcloudProviderConfig);
    private _password?;
    get password(): string | undefined;
    set password(value: string | undefined);
    resetPassword(): void;
    get passwordInput(): string | undefined;
    private _requestTimeoutSec?;
    get requestTimeoutSec(): number | undefined;
    set requestTimeoutSec(value: number | undefined);
    resetRequestTimeoutSec(): void;
    get requestTimeoutSecInput(): number | undefined;
    private _retryMax?;
    get retryMax(): number | undefined;
    set retryMax(value: number | undefined);
    resetRetryMax(): void;
    get retryMaxInput(): number | undefined;
    private _retryWaitMaxSec?;
    get retryWaitMaxSec(): number | undefined;
    set retryWaitMaxSec(value: number | undefined);
    resetRetryWaitMaxSec(): void;
    get retryWaitMaxSecInput(): number | undefined;
    private _retryWaitMinSec?;
    get retryWaitMinSec(): number | undefined;
    set retryWaitMinSec(value: number | undefined);
    resetRetryWaitMinSec(): void;
    get retryWaitMinSecInput(): number | undefined;
    private _token?;
    get token(): string | undefined;
    set token(value: string | undefined);
    resetToken(): void;
    get tokenInput(): string | undefined;
    private _username?;
    get username(): string | undefined;
    set username(value: string | undefined);
    resetUsername(): void;
    get usernameInput(): string | undefined;
    private _alias?;
    get alias(): string | undefined;
    set alias(value: string | undefined);
    resetAlias(): void;
    get aliasInput(): string | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
