import * as core from "@terrascript/core";
export interface EgressArgs extends core.SchemaArgs {
    cidrBlocks?: core.Array<string> | core.ArrayOut<core.StringOut>;
    description?: string | core.StringOut;
    fromPort: number | core.NumberOut;
    ipv6CidrBlocks?: core.Array<string> | core.ArrayOut<core.StringOut>;
    prefixListIds?: core.Array<string> | core.ArrayOut<core.StringOut>;
    protocol: string | core.StringOut;
    securityGroups?: core.Array<string> | core.ArrayOut<core.StringOut>;
    self?: boolean | core.BooleanOut;
    toPort: number | core.NumberOut;
}
export declare class Egress extends core.Schema<EgressArgs> {
    cidrBlocks?: core.Array<string> | core.ArrayOut<core.StringOut>;
    description?: string | core.StringOut;
    fromPort: number | core.NumberOut;
    ipv6CidrBlocks?: core.Array<string> | core.ArrayOut<core.StringOut>;
    prefixListIds?: core.Array<string> | core.ArrayOut<core.StringOut>;
    protocol: string | core.StringOut;
    securityGroups?: core.Array<string> | core.ArrayOut<core.StringOut>;
    self?: boolean | core.BooleanOut;
    toPort: number | core.NumberOut;
}
export interface IngressArgs extends core.SchemaArgs {
    cidrBlocks?: core.Array<string> | core.ArrayOut<core.StringOut>;
    description?: string | core.StringOut;
    fromPort: number | core.NumberOut;
    ipv6CidrBlocks?: core.Array<string> | core.ArrayOut<core.StringOut>;
    prefixListIds?: core.Array<string> | core.ArrayOut<core.StringOut>;
    protocol: string | core.StringOut;
    securityGroups?: core.Array<string> | core.ArrayOut<core.StringOut>;
    self?: boolean | core.BooleanOut;
    toPort: number | core.NumberOut;
}
export declare class Ingress extends core.Schema<IngressArgs> {
    cidrBlocks?: core.Array<string> | core.ArrayOut<core.StringOut>;
    description?: string | core.StringOut;
    fromPort: number | core.NumberOut;
    ipv6CidrBlocks?: core.Array<string> | core.ArrayOut<core.StringOut>;
    prefixListIds?: core.Array<string> | core.ArrayOut<core.StringOut>;
    protocol: string | core.StringOut;
    securityGroups?: core.Array<string> | core.ArrayOut<core.StringOut>;
    self?: boolean | core.BooleanOut;
    toPort: number | core.NumberOut;
}
export interface SecurityGroupArgs extends core.ResourceArgs {
    description?: string | core.StringOut;
    egress?: core.Array<Egress> | core.ArrayOut<Egress>;
    ingress?: core.Array<Ingress> | core.ArrayOut<Ingress>;
    name?: string | core.StringOut;
    namePrefix?: string | core.StringOut;
    revokeRulesOnDelete?: boolean | core.BooleanOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    vpcId?: string | core.StringOut;
}
export declare class SecurityGroup extends core.Resource<SecurityGroupArgs> {
    arn: string | core.StringOut;
    description?: string | core.StringOut;
    egress?: core.Array<Egress> | core.ArrayOut<Egress>;
    id: string | core.StringOut;
    ingress?: core.Array<Ingress> | core.ArrayOut<Ingress>;
    name?: string | core.StringOut;
    namePrefix?: string | core.StringOut;
    ownerId: string | core.StringOut;
    revokeRulesOnDelete?: boolean | core.BooleanOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    vpcId?: string | core.StringOut;
    constructor(name: string, args?: SecurityGroupArgs);
    getNamespace(): string;
}
//# sourceMappingURL=security_group.d.ts.map