import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface DataProxmoxVirtualMachinesConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/proxmox/d/virtual_machines#filters DataProxmoxVirtualMachines#filters}
    */
    readonly filters?: DataProxmoxVirtualMachinesFilters[] | cdktf.IResolvable;
}
export interface DataProxmoxVirtualMachinesFilters {
    /**
    * The name of the attribute to filter on.
    *
    * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/proxmox/d/virtual_machines#name DataProxmoxVirtualMachines#name}
    */
    readonly name: string;
    /**
    * The value(s) to be used in the filter.
    *
    * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/proxmox/d/virtual_machines#values DataProxmoxVirtualMachines#values}
    */
    readonly values: string[];
}
export declare function dataProxmoxVirtualMachinesFiltersToTerraform(struct?: DataProxmoxVirtualMachinesFilters | cdktf.IResolvable): any;
export declare class DataProxmoxVirtualMachinesFiltersOutputReference 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(): DataProxmoxVirtualMachinesFilters | cdktf.IResolvable | undefined;
    set internalValue(value: DataProxmoxVirtualMachinesFilters | cdktf.IResolvable | undefined);
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
    private _values?;
    get values(): string[];
    set values(value: string[]);
    get valuesInput(): string[] | undefined;
}
export declare class DataProxmoxVirtualMachinesFiltersList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DataProxmoxVirtualMachinesFilters[] | 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): DataProxmoxVirtualMachinesFiltersOutputReference;
}
export interface DataProxmoxVirtualMachinesVirtualMachinesAgent {
}
export declare function dataProxmoxVirtualMachinesVirtualMachinesAgentToTerraform(struct?: DataProxmoxVirtualMachinesVirtualMachinesAgent): any;
export declare class DataProxmoxVirtualMachinesVirtualMachinesAgentOutputReference 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(): DataProxmoxVirtualMachinesVirtualMachinesAgent | undefined;
    set internalValue(value: DataProxmoxVirtualMachinesVirtualMachinesAgent | undefined);
    get enabled(): cdktf.IResolvable;
    get type(): string;
    get useFstrim(): cdktf.IResolvable;
}
export interface DataProxmoxVirtualMachinesVirtualMachinesCloudInitDns {
}
export declare function dataProxmoxVirtualMachinesVirtualMachinesCloudInitDnsToTerraform(struct?: DataProxmoxVirtualMachinesVirtualMachinesCloudInitDns): any;
export declare class DataProxmoxVirtualMachinesVirtualMachinesCloudInitDnsOutputReference 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(): DataProxmoxVirtualMachinesVirtualMachinesCloudInitDns | undefined;
    set internalValue(value: DataProxmoxVirtualMachinesVirtualMachinesCloudInitDns | undefined);
    get domain(): string;
    get nameserver(): string;
}
export interface DataProxmoxVirtualMachinesVirtualMachinesCloudInitIpV4 {
}
export declare function dataProxmoxVirtualMachinesVirtualMachinesCloudInitIpV4ToTerraform(struct?: DataProxmoxVirtualMachinesVirtualMachinesCloudInitIpV4): any;
export declare class DataProxmoxVirtualMachinesVirtualMachinesCloudInitIpV4OutputReference 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(): DataProxmoxVirtualMachinesVirtualMachinesCloudInitIpV4 | undefined;
    set internalValue(value: DataProxmoxVirtualMachinesVirtualMachinesCloudInitIpV4 | undefined);
    get address(): string;
    get dhcp(): cdktf.IResolvable;
    get gateway(): string;
    get netmask(): string;
}
export interface DataProxmoxVirtualMachinesVirtualMachinesCloudInitIpV6 {
}
export declare function dataProxmoxVirtualMachinesVirtualMachinesCloudInitIpV6ToTerraform(struct?: DataProxmoxVirtualMachinesVirtualMachinesCloudInitIpV6): any;
export declare class DataProxmoxVirtualMachinesVirtualMachinesCloudInitIpV6OutputReference 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(): DataProxmoxVirtualMachinesVirtualMachinesCloudInitIpV6 | undefined;
    set internalValue(value: DataProxmoxVirtualMachinesVirtualMachinesCloudInitIpV6 | undefined);
    get address(): string;
    get dhcp(): cdktf.IResolvable;
    get gateway(): string;
    get netmask(): string;
}
export interface DataProxmoxVirtualMachinesVirtualMachinesCloudInitIp {
}
export declare function dataProxmoxVirtualMachinesVirtualMachinesCloudInitIpToTerraform(struct?: DataProxmoxVirtualMachinesVirtualMachinesCloudInitIp): any;
export declare class DataProxmoxVirtualMachinesVirtualMachinesCloudInitIpOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @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(): DataProxmoxVirtualMachinesVirtualMachinesCloudInitIp | undefined;
    set internalValue(value: DataProxmoxVirtualMachinesVirtualMachinesCloudInitIp | undefined);
    get position(): number;
    private _v4;
    get v4(): DataProxmoxVirtualMachinesVirtualMachinesCloudInitIpV4OutputReference;
    private _v6;
    get v6(): DataProxmoxVirtualMachinesVirtualMachinesCloudInitIpV6OutputReference;
}
export declare class DataProxmoxVirtualMachinesVirtualMachinesCloudInitIpList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @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): DataProxmoxVirtualMachinesVirtualMachinesCloudInitIpOutputReference;
}
export interface DataProxmoxVirtualMachinesVirtualMachinesCloudInitUser {
}
export declare function dataProxmoxVirtualMachinesVirtualMachinesCloudInitUserToTerraform(struct?: DataProxmoxVirtualMachinesVirtualMachinesCloudInitUser): any;
export declare class DataProxmoxVirtualMachinesVirtualMachinesCloudInitUserOutputReference 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(): DataProxmoxVirtualMachinesVirtualMachinesCloudInitUser | undefined;
    set internalValue(value: DataProxmoxVirtualMachinesVirtualMachinesCloudInitUser | undefined);
    get name(): string;
    get password(): string;
    get publicKeys(): string[];
}
export interface DataProxmoxVirtualMachinesVirtualMachinesCloudInit {
}
export declare function dataProxmoxVirtualMachinesVirtualMachinesCloudInitToTerraform(struct?: DataProxmoxVirtualMachinesVirtualMachinesCloudInit): any;
export declare class DataProxmoxVirtualMachinesVirtualMachinesCloudInitOutputReference 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(): DataProxmoxVirtualMachinesVirtualMachinesCloudInit | undefined;
    set internalValue(value: DataProxmoxVirtualMachinesVirtualMachinesCloudInit | undefined);
    private _dns;
    get dns(): DataProxmoxVirtualMachinesVirtualMachinesCloudInitDnsOutputReference;
    private _ip;
    get ip(): DataProxmoxVirtualMachinesVirtualMachinesCloudInitIpList;
    private _user;
    get user(): DataProxmoxVirtualMachinesVirtualMachinesCloudInitUserOutputReference;
}
export interface DataProxmoxVirtualMachinesVirtualMachinesCpu {
}
export declare function dataProxmoxVirtualMachinesVirtualMachinesCpuToTerraform(struct?: DataProxmoxVirtualMachinesVirtualMachinesCpu): any;
export declare class DataProxmoxVirtualMachinesVirtualMachinesCpuOutputReference 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(): DataProxmoxVirtualMachinesVirtualMachinesCpu | undefined;
    set internalValue(value: DataProxmoxVirtualMachinesVirtualMachinesCpu | undefined);
    get architecture(): string;
    get cores(): number;
    get cpuUnits(): number;
    get emulatedType(): string;
    get sockets(): number;
}
export interface DataProxmoxVirtualMachinesVirtualMachinesDisksSpeedLimits {
}
export declare function dataProxmoxVirtualMachinesVirtualMachinesDisksSpeedLimitsToTerraform(struct?: DataProxmoxVirtualMachinesVirtualMachinesDisksSpeedLimits): any;
export declare class DataProxmoxVirtualMachinesVirtualMachinesDisksSpeedLimitsOutputReference 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(): DataProxmoxVirtualMachinesVirtualMachinesDisksSpeedLimits | undefined;
    set internalValue(value: DataProxmoxVirtualMachinesVirtualMachinesDisksSpeedLimits | undefined);
    get read(): number;
    get readBurstable(): number;
    get write(): number;
    get writeBurstable(): number;
}
export interface DataProxmoxVirtualMachinesVirtualMachinesDisks {
}
export declare function dataProxmoxVirtualMachinesVirtualMachinesDisksToTerraform(struct?: DataProxmoxVirtualMachinesVirtualMachinesDisks): any;
export declare class DataProxmoxVirtualMachinesVirtualMachinesDisksOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @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(): DataProxmoxVirtualMachinesVirtualMachinesDisks | undefined;
    set internalValue(value: DataProxmoxVirtualMachinesVirtualMachinesDisks | undefined);
    get discard(): cdktf.IResolvable;
    get fileFormat(): string;
    get interfaceType(): string;
    get name(): string;
    get position(): number;
    get size(): number;
    private _speedLimits;
    get speedLimits(): DataProxmoxVirtualMachinesVirtualMachinesDisksSpeedLimitsOutputReference;
    get ssdEmulation(): cdktf.IResolvable;
    get storage(): string;
    get useIothread(): cdktf.IResolvable;
}
export declare class DataProxmoxVirtualMachinesVirtualMachinesDisksList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @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): DataProxmoxVirtualMachinesVirtualMachinesDisksOutputReference;
}
export interface DataProxmoxVirtualMachinesVirtualMachinesMemory {
}
export declare function dataProxmoxVirtualMachinesVirtualMachinesMemoryToTerraform(struct?: DataProxmoxVirtualMachinesVirtualMachinesMemory): any;
export declare class DataProxmoxVirtualMachinesVirtualMachinesMemoryOutputReference 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(): DataProxmoxVirtualMachinesVirtualMachinesMemory | undefined;
    set internalValue(value: DataProxmoxVirtualMachinesVirtualMachinesMemory | undefined);
    get dedicated(): number;
    get floating(): number;
    get shared(): number;
}
export interface DataProxmoxVirtualMachinesVirtualMachinesNetworkInterfaces {
}
export declare function dataProxmoxVirtualMachinesVirtualMachinesNetworkInterfacesToTerraform(struct?: DataProxmoxVirtualMachinesVirtualMachinesNetworkInterfaces): any;
export declare class DataProxmoxVirtualMachinesVirtualMachinesNetworkInterfacesOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @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(): DataProxmoxVirtualMachinesVirtualMachinesNetworkInterfaces | undefined;
    set internalValue(value: DataProxmoxVirtualMachinesVirtualMachinesNetworkInterfaces | undefined);
    get bridge(): string;
    get enabled(): cdktf.IResolvable;
    get macAddress(): string;
    get model(): string;
    get mtu(): number;
    get position(): number;
    get rateLimit(): number;
    get useFirewall(): cdktf.IResolvable;
    get vlan(): number;
}
export declare class DataProxmoxVirtualMachinesVirtualMachinesNetworkInterfacesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @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): DataProxmoxVirtualMachinesVirtualMachinesNetworkInterfacesOutputReference;
}
export interface DataProxmoxVirtualMachinesVirtualMachinesPciDevices {
}
export declare function dataProxmoxVirtualMachinesVirtualMachinesPciDevicesToTerraform(struct?: DataProxmoxVirtualMachinesVirtualMachinesPciDevices): any;
export declare class DataProxmoxVirtualMachinesVirtualMachinesPciDevicesOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @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(): DataProxmoxVirtualMachinesVirtualMachinesPciDevices | undefined;
    set internalValue(value: DataProxmoxVirtualMachinesVirtualMachinesPciDevices | undefined);
    get id(): string;
    get mdev(): string;
    get name(): string;
    get pcie(): cdktf.IResolvable;
    get primaryGpu(): cdktf.IResolvable;
    get romFile(): string;
    get rombar(): cdktf.IResolvable;
}
export declare class DataProxmoxVirtualMachinesVirtualMachinesPciDevicesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @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): DataProxmoxVirtualMachinesVirtualMachinesPciDevicesOutputReference;
}
export interface DataProxmoxVirtualMachinesVirtualMachines {
}
export declare function dataProxmoxVirtualMachinesVirtualMachinesToTerraform(struct?: DataProxmoxVirtualMachinesVirtualMachines): any;
export declare class DataProxmoxVirtualMachinesVirtualMachinesOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @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(): DataProxmoxVirtualMachinesVirtualMachines | undefined;
    set internalValue(value: DataProxmoxVirtualMachinesVirtualMachines | undefined);
    private _agent;
    get agent(): DataProxmoxVirtualMachinesVirtualMachinesAgentOutputReference;
    get bios(): string;
    private _cloudInit;
    get cloudInit(): DataProxmoxVirtualMachinesVirtualMachinesCloudInitOutputReference;
    private _cpu;
    get cpu(): DataProxmoxVirtualMachinesVirtualMachinesCpuOutputReference;
    get description(): string;
    private _disks;
    get disks(): DataProxmoxVirtualMachinesVirtualMachinesDisksList;
    get id(): number;
    get keyboardLayout(): string;
    get kvmArguments(): string;
    get machineType(): string;
    private _memory;
    get memory(): DataProxmoxVirtualMachinesVirtualMachinesMemoryOutputReference;
    get name(): string;
    private _networkInterfaces;
    get networkInterfaces(): DataProxmoxVirtualMachinesVirtualMachinesNetworkInterfacesList;
    get nodeAttribute(): string;
    private _pciDevices;
    get pciDevices(): DataProxmoxVirtualMachinesVirtualMachinesPciDevicesList;
    get resourcePool(): string;
    get startOnNodeBoot(): cdktf.IResolvable;
    get tags(): string[];
    get type(): string;
}
export declare class DataProxmoxVirtualMachinesVirtualMachinesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @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): DataProxmoxVirtualMachinesVirtualMachinesOutputReference;
}
/**
* Represents a {@link https://www.terraform.io/docs/providers/proxmox/d/virtual_machines proxmox_virtual_machines}
*/
export declare class DataProxmoxVirtualMachines extends cdktf.TerraformDataSource {
    static readonly tfResourceType = "proxmox_virtual_machines";
    /**
    * Create a new {@link https://www.terraform.io/docs/providers/proxmox/d/virtual_machines proxmox_virtual_machines} Data Source
    *
    * @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 DataProxmoxVirtualMachinesConfig = {}
    */
    constructor(scope: Construct, id: string, config?: DataProxmoxVirtualMachinesConfig);
    private _filters;
    get filters(): DataProxmoxVirtualMachinesFiltersList;
    putFilters(value: DataProxmoxVirtualMachinesFilters[] | cdktf.IResolvable): void;
    resetFilters(): void;
    get filtersInput(): cdktf.IResolvable | DataProxmoxVirtualMachinesFilters[] | undefined;
    private _virtualMachines;
    get virtualMachines(): DataProxmoxVirtualMachinesVirtualMachinesList;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
}
