import * as $dara from '@darabonba/typescript';
export declare class DescribeSecurityGroupsResponseBodySecurityGroupsSecurityGroupTagsTag extends $dara.Model {
    tagKey?: string;
    tagValue?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeSecurityGroupsResponseBodySecurityGroupsSecurityGroupTags extends $dara.Model {
    tag?: DescribeSecurityGroupsResponseBodySecurityGroupsSecurityGroupTagsTag[];
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeSecurityGroupsResponseBodySecurityGroupsSecurityGroup extends $dara.Model {
    availableInstanceAmount?: number;
    creationTime?: string;
    description?: string;
    ecsCount?: number;
    groupToGroupRuleCount?: number;
    resourceGroupId?: string;
    ruleCount?: number;
    securityGroupId?: string;
    securityGroupName?: string;
    securityGroupType?: string;
    serviceID?: number;
    serviceManaged?: boolean;
    tags?: DescribeSecurityGroupsResponseBodySecurityGroupsSecurityGroupTags;
    vpcId?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeSecurityGroupsResponseBodySecurityGroups extends $dara.Model {
    securityGroup?: DescribeSecurityGroupsResponseBodySecurityGroupsSecurityGroup[];
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeSecurityGroupsResponseBody extends $dara.Model {
    /**
     * @remarks
     * A pagination token. If the return value of this parameter is empty when MaxResults and NextToken are used for a paged query, no next page exists.
     *
     * @example
     * e71d8a535bd9cc11
     */
    nextToken?: string;
    /**
     * @remarks
     * The page number.
     *
     * > This parameter will be deprecated in the future. We recommend that you use NextToken and MaxResults for a paged query.
     *
     * @example
     * 1
     */
    pageNumber?: number;
    /**
     * @remarks
     * The number of entries per page.
     *
     * > This parameter will be deprecated in the future. We recommend that you use NextToken and MaxResults for a paged query.
     *
     * @example
     * 10
     */
    pageSize?: number;
    /**
     * @remarks
     * The region ID of the security group.
     *
     * @example
     * cn-hangzhou
     */
    regionId?: string;
    /**
     * @remarks
     * The request ID.
     *
     * @example
     * 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E
     */
    requestId?: string;
    securityGroups?: DescribeSecurityGroupsResponseBodySecurityGroups;
    /**
     * @remarks
     * The total number of security groups returned. If `MaxResults` and `NextToken` are specified in the request, the value of this parameter is not returned.
     *
     * @example
     * 20
     */
    totalCount?: number;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
