import type { CountryCode, RegisterDomainCommandOutput } from "@aws-sdk/client-route-53-domains";
import { _InstanceType as InstanceType } from "@aws-sdk/client-ec2";
import { ContactType } from "@aws-sdk/client-route-53-domains";
import { type Result } from "@stacksjs/error-handling";
export { InstanceType };
export declare function getSecurityGroupId(securityGroupName: string): Promise<Result<string | undefined, string>>;
export interface PurchaseOptions {
	domain: string;
	years: number;
	privacy: boolean;
	autoRenew: boolean;
	adminFirstName: string;
	adminLastName: string;
	adminOrganization: string;
	adminAddressLine1: string;
	adminAddressLine2: string;
	adminCity: string;
	adminState: string;
	adminCountry: CountryCode;
	adminZip: string;
	adminPhone: string;
	adminEmail: string;
	techFirstName: string;
	techLastName: string;
	techOrganization: string;
	techAddressLine1: string;
	techAddressLine2: string;
	techCity: string;
	techState: string;
	techCountry: CountryCode;
	techZip: string;
	techPhone: string;
	techEmail: string;
	registrantFirstName: string;
	registrantLastName: string;
	registrantOrganization: string;
	registrantAddressLine1: string;
	registrantAddressLine2: string;
	registrantCity: string;
	registrantState: string;
	registrantCountry: CountryCode;
	registrantZip: string;
	registrantPhone: string;
	registrantEmail: string;
	privacyAdmin: boolean;
	privacyTech: boolean;
	privacyRegistrant: boolean;
	contactType: ContactType;
	verbose: boolean;
}
export declare function purchaseDomain(domain: string, options: PurchaseOptions): Result<Promise<RegisterDomainCommandOutput>, Error>;
export declare function getJumpBoxInstanceId(name?: string): Promise<string | undefined>;
export declare function deleteEc2Instance(id: string, stackName?: string): Promise<Result<string, string>>;
export declare function deleteJumpBox(stackName?: string): Promise<Result<string, string>>;
export declare function deleteIamUsers(): Promise<Result<string, string>>;
export declare function deleteStacksBuckets(): Promise<Result<string, string | Error>>;
export declare function deleteStacksFunctions(): Promise<Result<string, string>>;
export declare function deleteLogGroups(): Promise<Result<string, Error>>;
export declare function deleteParameterStore(): Promise<Result<string, string>>;
export declare function deleteVpcs(): Promise<Result<string, Error>>;
export declare function deleteCdkRemnants(): Promise<Result<string, Error>>;
export declare function deleteSubnets(): Promise<Result<string, Error>>;
export declare function hasBeenDeployed(): Promise<Result<boolean, Error>>;
export declare function getJumpBoxInstanceProfileName(): Promise<Result<string | undefined, string>>;
export declare function addJumpBox(stackName?: string): Promise<Result<string, string>>;
export declare function getJumpBoxSecurityGroupName(): Promise<Result<string | undefined, string>>;
export declare function getSecurityGroupFromInstanceId(instanceId: string): Promise<string | undefined>;
export declare function isFirstDeployment(): Promise<boolean>;
export declare function isFailedState(): Promise<boolean>;
export declare function getOrCreateTimestamp(): Promise<string>;
export declare function getCloudFrontDistributionId(): Promise<string>;
