import type { NonEmptyString } from "../../common/CustomTypes/NonEmptyString";
import type { NaturalNumber, PositiveOrZero } from "../../common/CustomTypes/Numerics";
import type { RootedPath } from "../../common/CustomTypes/RootedPath";
import type { SecurityGroupId } from "../../common/CustomTypes/SecurityGroupId";
import type { SubnetId } from "../../common/CustomTypes/SubnetId";
import type { ResourceBase } from "./Common";
import type { FunctionEnvironment, PolicyReference } from "./ComputeFunction";
export declare type FargateServerlessServiceType = 'resource.compute.web-service';
export interface FargateServerlessService extends ResourceBase {
    type: FargateServerlessServiceType;
    requirements: Requirements;
    vpcConfig: VpcConfig;
    scaling: Scaling;
    image: Image;
    environment?: FunctionEnvironment;
    policies?: PolicyReference | PolicyReference[];
}
export declare const isFargateServerlessService: import("@altostra/type-validations").ObjectOfTypeValidation<{
    type: string;
    requirements: {
        vCPU: any;
        memory: any;
    };
    vpcConfig: {
        vpcId: any;
        securityGroupIds: any;
        subnetIds: any;
    };
    scaling: {
        instances: any;
    };
    image: {
        name: any;
        uri: any;
        port: any;
        healthCheckPath: any;
    };
    environment: FunctionEnvironment | undefined;
    policies: import("../../aws/Arn").Arn | import("../../aws/IamRoleName").IamRoleName | import("../../aws/CloudFormation/IntrinsicFunctions").Cidr | import("../../aws/CloudFormation/IntrinsicFunctions").Base64 | import("../../aws/CloudFormation/IntrinsicFunctions").And | import("../../aws/CloudFormation/IntrinsicFunctions").Equals | import("../../aws/CloudFormation/IntrinsicFunctions").Not | import("../../aws/CloudFormation/IntrinsicFunctions").Or | import("../../aws/CloudFormation/IntrinsicFunctions").FindInMap | import("../../aws/CloudFormation/IntrinsicFunctions").GetAtt | import("../../aws/CloudFormation/IntrinsicFunctions").GetAZs | import("../../aws/CloudFormation/IntrinsicFunctions").If | import("../../aws/CloudFormation/IntrinsicFunctions").ImportValue | import("../../aws/CloudFormation/IntrinsicFunctions").Join | import("../../aws/CloudFormation/IntrinsicFunctions").Length | import("../../aws/CloudFormation/IntrinsicFunctions").Ref | import("../../aws/CloudFormation/IntrinsicFunctions").Select | import("../../aws/CloudFormation/IntrinsicFunctions").Split | import("../../aws/CloudFormation/IntrinsicFunctions").Sub | import("../../aws/CloudFormation/IntrinsicFunctions/Transform").Transform | import("../../aws/CloudFormation/PolicyDocument").IamPolicyDocument | (import("../../aws/Arn").Arn | import("../../aws/IamRoleName").IamRoleName | import("../../aws/CloudFormation/IntrinsicFunctions").Cidr | import("../../aws/CloudFormation/IntrinsicFunctions").Base64 | import("../../aws/CloudFormation/IntrinsicFunctions").And | import("../../aws/CloudFormation/IntrinsicFunctions").Equals | import("../../aws/CloudFormation/IntrinsicFunctions").Not | import("../../aws/CloudFormation/IntrinsicFunctions").Or | import("../../aws/CloudFormation/IntrinsicFunctions").FindInMap | import("../../aws/CloudFormation/IntrinsicFunctions").GetAtt | import("../../aws/CloudFormation/IntrinsicFunctions").GetAZs | import("../../aws/CloudFormation/IntrinsicFunctions").If | import("../../aws/CloudFormation/IntrinsicFunctions").ImportValue | import("../../aws/CloudFormation/IntrinsicFunctions").Join | import("../../aws/CloudFormation/IntrinsicFunctions").Length | import("../../aws/CloudFormation/IntrinsicFunctions").Ref | import("../../aws/CloudFormation/IntrinsicFunctions").Select | import("../../aws/CloudFormation/IntrinsicFunctions").Split | import("../../aws/CloudFormation/IntrinsicFunctions").Sub | import("../../aws/CloudFormation/IntrinsicFunctions/Transform").Transform | import("../../aws/CloudFormation/PolicyDocument").IamPolicyDocument)[] | (import("../../aws/Arn").Arn | import("../../aws/IamRoleName").IamRoleName | import("../../aws/CloudFormation/IntrinsicFunctions").Cidr | import("../../aws/CloudFormation/IntrinsicFunctions").Base64 | import("../../aws/CloudFormation/IntrinsicFunctions").And | import("../../aws/CloudFormation/IntrinsicFunctions").Equals | import("../../aws/CloudFormation/IntrinsicFunctions").Not | import("../../aws/CloudFormation/IntrinsicFunctions").Or | import("../../aws/CloudFormation/IntrinsicFunctions").FindInMap | import("../../aws/CloudFormation/IntrinsicFunctions").GetAtt | import("../../aws/CloudFormation/IntrinsicFunctions").GetAZs | import("../../aws/CloudFormation/IntrinsicFunctions").If | import("../../aws/CloudFormation/IntrinsicFunctions").ImportValue | import("../../aws/CloudFormation/IntrinsicFunctions").Join | import("../../aws/CloudFormation/IntrinsicFunctions").Length | import("../../aws/CloudFormation/IntrinsicFunctions").Ref | import("../../aws/CloudFormation/IntrinsicFunctions").Select | import("../../aws/CloudFormation/IntrinsicFunctions").Split | import("../../aws/CloudFormation/IntrinsicFunctions").Sub | import("../../aws/CloudFormation/IntrinsicFunctions/Transform").Transform | import("../../aws/CloudFormation/PolicyDocument").IamPolicyDocument | (import("../../aws/Arn").Arn | import("../../aws/IamRoleName").IamRoleName | import("../../aws/CloudFormation/IntrinsicFunctions").Cidr | import("../../aws/CloudFormation/IntrinsicFunctions").Base64 | import("../../aws/CloudFormation/IntrinsicFunctions").And | import("../../aws/CloudFormation/IntrinsicFunctions").Equals | import("../../aws/CloudFormation/IntrinsicFunctions").Not | import("../../aws/CloudFormation/IntrinsicFunctions").Or | import("../../aws/CloudFormation/IntrinsicFunctions").FindInMap | import("../../aws/CloudFormation/IntrinsicFunctions").GetAtt | import("../../aws/CloudFormation/IntrinsicFunctions").GetAZs | import("../../aws/CloudFormation/IntrinsicFunctions").If | import("../../aws/CloudFormation/IntrinsicFunctions").ImportValue | import("../../aws/CloudFormation/IntrinsicFunctions").Join | import("../../aws/CloudFormation/IntrinsicFunctions").Length | import("../../aws/CloudFormation/IntrinsicFunctions").Ref | import("../../aws/CloudFormation/IntrinsicFunctions").Select | import("../../aws/CloudFormation/IntrinsicFunctions").Split | import("../../aws/CloudFormation/IntrinsicFunctions").Sub | import("../../aws/CloudFormation/IntrinsicFunctions/Transform").Transform | import("../../aws/CloudFormation/PolicyDocument").IamPolicyDocument)[])[] | undefined;
    description: string | undefined;
    name: string;
    id: import("./ResourceId").ResourceId;
}>;
interface Requirements {
    vCPU: PositiveOrZero;
    memory: PositiveOrZero;
}
interface VpcConfig {
    vpcId: NonEmptyString;
    securityGroupIds?: SecurityGroupId[];
    subnetIds: SubnetId[];
}
interface Scaling {
    instances: PositiveOrZero;
}
interface Image {
    name: NonEmptyString;
    healthCheckPath: RootedPath;
    uri: NonEmptyString;
    port: NaturalNumber;
}
export {};
