import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
import { z } from "zod";
declare const bastionEc2Args: z.ZodObject<{
    ami: z.ZodDefault<z.ZodString>;
    instanceType: z.ZodDefault<z.ZodString>;
    vpc: z.ZodObject<{
        vpcId: z.ZodUnion<[z.ZodString, z.ZodAny]>;
        privateSubnetIds: z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodAny]>;
    }, "strip", z.ZodTypeAny, {
        vpcId?: any;
        privateSubnetIds?: any;
    }, {
        vpcId?: any;
        privateSubnetIds?: any;
    }>;
    securityGroups: z.ZodArray<z.ZodType<import("@pulumi/aws/ec2/securityGroup").SecurityGroup, z.ZodTypeDef, import("@pulumi/aws/ec2/securityGroup").SecurityGroup>, "many">;
}, "strip", z.ZodTypeAny, {
    securityGroups: import("@pulumi/aws/ec2/securityGroup").SecurityGroup[];
    ami: string;
    instanceType: string;
    vpc: {
        vpcId?: any;
        privateSubnetIds?: any;
    };
}, {
    securityGroups: import("@pulumi/aws/ec2/securityGroup").SecurityGroup[];
    vpc: {
        vpcId?: any;
        privateSubnetIds?: any;
    };
    ami?: string | undefined;
    instanceType?: string | undefined;
}>;
export type BastionEc2Args = z.infer<typeof bastionEc2Args>;
export declare class BastionEc2 extends pulumi.ComponentResource {
    _args: BastionEc2Args;
    instance: aws.ec2.Instance;
    constructor(name: string, args: BastionEc2Args, opts?: pulumi.ComponentResourceOptions);
}
export {};
