import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface NetworkBridgeConfig extends cdktf.TerraformMetaArguments {
    /**
    * If the bridge is set to autostart.
    *
    * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/proxmox/r/network_bridge#autostart NetworkBridge#autostart}
    */
    readonly autostart?: boolean | cdktf.IResolvable;
    /**
    * Comment on the bridge.
    *
    * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/proxmox/r/network_bridge#comments NetworkBridge#comments}
    */
    readonly comments?: string;
    /**
    * List of interfaces on the bridge.
    *
    * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/proxmox/r/network_bridge#interfaces NetworkBridge#interfaces}
    */
    readonly interfaces: string[];
    /**
    * Information of the ipv4 address.
    *
    * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/proxmox/r/network_bridge#ipv4 NetworkBridge#ipv4}
    */
    readonly ipv4?: NetworkBridgeIpv4 | cdktf.IResolvable;
    /**
    * The ipv4 gateway.
    *
    * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/proxmox/r/network_bridge#ipv4_gateway NetworkBridge#ipv4_gateway}
    */
    readonly ipv4Gateway?: string;
    /**
    * Information of the ipv6 address.
    *
    * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/proxmox/r/network_bridge#ipv6 NetworkBridge#ipv6}
    */
    readonly ipv6?: NetworkBridgeIpv6 | cdktf.IResolvable;
    /**
    * The ipv6 gateway.
    *
    * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/proxmox/r/network_bridge#ipv6_gateway NetworkBridge#ipv6_gateway}
    */
    readonly ipv6Gateway?: string;
    /**
    * The name of the bridge. Follows the scheme `vmbr<n>`. If not set, the next available name will be used.
    *
    * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/proxmox/r/network_bridge#name NetworkBridge#name}
    */
    readonly name?: string;
    /**
    * The node the bridge is on.
    *
    * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/proxmox/r/network_bridge#node NetworkBridge#node}
    */
    readonly nodeAttribute: string;
    /**
    * If the bridge is vlan aware.
    *
    * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/proxmox/r/network_bridge#vlan_aware NetworkBridge#vlan_aware}
    */
    readonly vlanAware?: boolean | cdktf.IResolvable;
}
export interface NetworkBridgeIpv4 {
    /**
    * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/proxmox/r/network_bridge#address NetworkBridge#address}
    */
    readonly address?: string;
    /**
    * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/proxmox/r/network_bridge#netmask NetworkBridge#netmask}
    */
    readonly netmask?: string;
}
export declare function networkBridgeIpv4ToTerraform(struct?: NetworkBridgeIpv4 | cdktf.IResolvable): any;
export declare class NetworkBridgeIpv4OutputReference 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(): NetworkBridgeIpv4 | cdktf.IResolvable | undefined;
    set internalValue(value: NetworkBridgeIpv4 | cdktf.IResolvable | undefined);
    private _address?;
    get address(): string;
    set address(value: string);
    resetAddress(): void;
    get addressInput(): string | undefined;
    private _netmask?;
    get netmask(): string;
    set netmask(value: string);
    resetNetmask(): void;
    get netmaskInput(): string | undefined;
}
export interface NetworkBridgeIpv6 {
    /**
    * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/proxmox/r/network_bridge#address NetworkBridge#address}
    */
    readonly address?: string;
    /**
    * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/proxmox/r/network_bridge#netmask NetworkBridge#netmask}
    */
    readonly netmask?: string;
}
export declare function networkBridgeIpv6ToTerraform(struct?: NetworkBridgeIpv6 | cdktf.IResolvable): any;
export declare class NetworkBridgeIpv6OutputReference 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(): NetworkBridgeIpv6 | cdktf.IResolvable | undefined;
    set internalValue(value: NetworkBridgeIpv6 | cdktf.IResolvable | undefined);
    private _address?;
    get address(): string;
    set address(value: string);
    resetAddress(): void;
    get addressInput(): string | undefined;
    private _netmask?;
    get netmask(): string;
    set netmask(value: string);
    resetNetmask(): void;
    get netmaskInput(): string | undefined;
}
/**
* Represents a {@link https://www.terraform.io/docs/providers/proxmox/r/network_bridge proxmox_network_bridge}
*/
export declare class NetworkBridge extends cdktf.TerraformResource {
    static readonly tfResourceType = "proxmox_network_bridge";
    /**
    * Create a new {@link https://www.terraform.io/docs/providers/proxmox/r/network_bridge proxmox_network_bridge} 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 NetworkBridgeConfig
    */
    constructor(scope: Construct, id: string, config: NetworkBridgeConfig);
    get active(): cdktf.IResolvable;
    private _autostart?;
    get autostart(): boolean | cdktf.IResolvable;
    set autostart(value: boolean | cdktf.IResolvable);
    resetAutostart(): void;
    get autostartInput(): boolean | cdktf.IResolvable | undefined;
    private _comments?;
    get comments(): string;
    set comments(value: string);
    resetComments(): void;
    get commentsInput(): string | undefined;
    get id(): string;
    private _interfaces?;
    get interfaces(): string[];
    set interfaces(value: string[]);
    get interfacesInput(): string[] | undefined;
    private _ipv4?;
    get ipv4(): NetworkBridgeIpv4 | cdktf.IResolvable;
    set ipv4(value: NetworkBridgeIpv4 | cdktf.IResolvable);
    resetIpv4(): void;
    get ipv4Input(): cdktf.IResolvable | NetworkBridgeIpv4 | undefined;
    private _ipv4Gateway?;
    get ipv4Gateway(): string;
    set ipv4Gateway(value: string);
    resetIpv4Gateway(): void;
    get ipv4GatewayInput(): string | undefined;
    private _ipv6?;
    get ipv6(): NetworkBridgeIpv6 | cdktf.IResolvable;
    set ipv6(value: NetworkBridgeIpv6 | cdktf.IResolvable);
    resetIpv6(): void;
    get ipv6Input(): cdktf.IResolvable | NetworkBridgeIpv6 | undefined;
    private _ipv6Gateway?;
    get ipv6Gateway(): string;
    set ipv6Gateway(value: string);
    resetIpv6Gateway(): void;
    get ipv6GatewayInput(): string | undefined;
    private _name?;
    get name(): string;
    set name(value: string);
    resetName(): void;
    get nameInput(): string | undefined;
    private _node?;
    get nodeAttribute(): string;
    set nodeAttribute(value: string);
    get nodeAttributeInput(): string | undefined;
    private _vlanAware?;
    get vlanAware(): boolean | cdktf.IResolvable;
    set vlanAware(value: boolean | cdktf.IResolvable);
    resetVlanAware(): void;
    get vlanAwareInput(): boolean | cdktf.IResolvable | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
}
