import * as _pulumi_aws_ec2_instance from '@pulumi/aws/ec2/instance';
import * as _pulumi_aws_ec2_securityGroup from '@pulumi/aws/ec2/securityGroup';
import * as _pulumi_aws_ec2_defaultSubnet from '@pulumi/aws/ec2/defaultSubnet';
import * as _pulumi_aws_ec2_defaultVpc from '@pulumi/aws/ec2/defaultVpc';
import * as aws from '@pulumi/aws';
import * as pulumi from '@pulumi/pulumi';

declare function getAWSTemplateName(): string;
type CustomResourceOptions = pulumi.CustomResourceOptions & {
    scope: string;
    zone: string;
};
/**
 * Returns the provider options for AWS.
 *
 * @remarks
 * This function creates a new AWS provider with the region specified in the configuration.
 *
 * @returns The provider options for AWS.
 */
declare function getProviderOpts(scope?: string): CustomResourceOptions;
/**
 * Returns a VPC for the AWS provider.
 *
 * @remarks
 * This function creates a new default VPC with the specified tags.
 *
 * @param opts - Optional custom resource options.
 * @param appId - The application ID to use in the tags.
 * @param override - Optional overrides for the default VPC arguments.
 * @returns The default VPC resource.
 */
declare function vpc(opts?: CustomResourceOptions, appId?: string, override?: Partial<aws.ec2.DefaultVpcArgs>): _pulumi_aws_ec2_defaultVpc.DefaultVpc;
/**
 * Returns a subnet for the AWS provider.
 *
 * @remarks
 * This function creates a new default subnet with the specified tags.
 *
 * @param opts - Optional custom resource options.
 * @param appId - The application ID to use in the tags.
 * @param override - Optional overrides for the default subnet arguments.
 * @returns The default subnet resource.
 */
declare function subnet(opts?: CustomResourceOptions, appId?: string, override?: Partial<aws.ec2.DefaultSubnetArgs>): _pulumi_aws_ec2_defaultSubnet.DefaultSubnet;
/**
 * Returns a security group for the AWS provider.
 *
 * @remarks
 * This function creates a new security group with the specified tags.
 *
 * @param opts - Optional custom resource options.
 * @param appId - The application ID to use in the tags.
 * @param override - Optional overrides for the default security group arguments.
 * @returns The security group resource.
 */
declare function securityGroup(vpc: aws.ec2.Vpc, opts?: CustomResourceOptions, appId?: string, override?: Partial<aws.ec2.SecurityGroupArgs>): _pulumi_aws_ec2_securityGroup.SecurityGroup;
declare function ec2Instance(vpc: aws.ec2.Vpc, subnet: aws.ec2.Subnet, securityGroup: aws.ec2.SecurityGroup, opts?: CustomResourceOptions, appId?: string, override?: Partial<aws.ec2.InstanceArgs>): _pulumi_aws_ec2_instance.Instance;

export { type CustomResourceOptions, ec2Instance, getAWSTemplateName, getProviderOpts, securityGroup, subnet, vpc };
