import { AWS } from "./AWS"; declare global { interface Array { filterByAz(az: VPC.AvailabilityZone): VPC.Subnet[]; } } export declare class VPC extends AWS.Resource { private _subnets; static isTypeOf(resource: AWS.Resource): resource is VPC; static new(session: AWS.Session, id?: string): VPC; private constructor(); protected updateChildren(): Promise; private getSubnets; subnets(): Promise; } export declare class VPCs extends Array { private static describeVPCs; static fetch(session: AWS.Session, vpcIds?: string[]): Promise; } export declare namespace VPC { const type = "VPC"; class AvailabilityZone extends AWS.Resource { static isTypeOf(resource: AWS.Resource): resource is AvailabilityZone; static new(session: AWS.Session, name: string, vpc?: VPC): AvailabilityZone; constructor(session: AWS.Session, id: string); protected updateChildren(): Promise; } namespace AvailabilityZone { const type = "VPC.AvailabilityZone"; } class Endpoint extends AWS.Resource { type: string; status: string; vpc: string; serviceName: string; static new(session: AWS.Session, id?: string, type?: string, status?: string, vpc?: string, serviceName?: string): Endpoint; private constructor(); protected updateChildren(): Promise; hasStatus(): boolean; hasVPC(): boolean; hasServiceName(): boolean; hasType(): boolean; } namespace Endpoint { const type = "VPC.Endpoint"; } class Endpoints extends Array { private static describeEndpoints; static fetch(session: AWS.Session): Promise; } class Subnet extends AWS.Resource { private _az; private _vpc; static isTypeOf(resource: AWS.Resource): resource is Subnet; static new(session: AWS.Session, id?: string, az?: AvailabilityZone, vpc?: VPC): Subnet; private constructor(); get az(): AvailabilityZone | undefined; get vpc(): VPC | undefined; protected updateChildren(): Promise; hasAZ(): boolean; hasVPC(): boolean; } namespace Subnet { const type = "VPC.Subnet"; } class Subnets extends Array { private static describeSubnets; static fetch(session: AWS.Session, subnetIds?: string[]): Promise; } namespace Gateway { class NAT extends AWS.Resource { private _az; private _vpc; private _subnet; state: string; type: string; static isTypeOf(resource: AWS.Resource): resource is NAT; static new(session: AWS.Session, id?: string, type?: string, state?: string, az?: AvailabilityZone, vpc?: VPC, subnet?: Subnet): NAT; private constructor(); get az(): AvailabilityZone | undefined; get vpc(): VPC | undefined; get subnet(): Subnet | undefined; hasType(): boolean; hasState(): boolean; protected updateChildren(): Promise; } namespace NAT { const type = "VPC.Gateway.NAT"; } class NATs extends Array { private static describeNATs; static fetch(session: AWS.Session, natIds?: string[]): Promise; } } }