import { Value } from '../../cloudformation/Value';
import { ThingGroupPropertiesProps } from './thinggroup/ThingGroupPropertiesProps';
import { Tag } from '../Tag';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type ThingGroupAttributes = {
    Id: Attribute<string>;
    Arn: Attribute<string>;
};
export type ThingGroup = AwsResource<'AWS::IoT::ThingGroup', ThingGroupProperties, ThingGroupAttributes>;
/**
  Creates a new thing group. A dynamic thing group is created if the resource template contains the <code>QueryString</code> attribute. A dynamic thing group will not contain the <code>ParentGroupName</code> attribute. A static thing group and dynamic thing group can’t be converted to each other via the addition or removal of the <code>QueryString</code> attribute.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thinggroup.html">the AWS Docs</a>
*/
export declare function thingGroup(thingGroupProps?: ThingGroupProperties): ThingGroup;
/**
  Creates a new thing group. A dynamic thing group is created if the resource template contains the <code>QueryString</code> attribute. A dynamic thing group will not contain the <code>ParentGroupName</code> attribute. A static thing group and dynamic thing group can’t be converted to each other via the addition or removal of the <code>QueryString</code> attribute.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thinggroup.html">the AWS Docs</a>
*/
export interface ThingGroupProperties {
    /** <code>ParentGroupName</code>  <a name="cfn-iot-thinggroup-parentgroupname"></a>
  The parent thing group name.<br />
  A Dynamic Thing Group does not have <code>parentGroupName</code> defined.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    parentGroupName?: Value<string>;
    /** <code>ThingGroupName</code>  <a name="cfn-iot-thinggroup-thinggroupname"></a>
  The thing group name.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    thingGroupName?: Value<string>;
    /** <code>ThingGroupProperties</code>  <a name="cfn-iot-thinggroup-thinggroupproperties"></a>
  Thing group properties.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    thingGroupProperties?: ThingGroupPropertiesProps;
    /** <code>QueryString</code>  <a name="cfn-iot-thinggroup-querystring"></a>
  The dynamic thing group search query string.<br />
  The <code>queryString</code> attribute
  is: equired for <code>CreateDynamicThingGroup</code>. The <code>queryString</code> attribute
  is not: equired for <code>CreateThingGroup</code>.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    queryString?: Value<string>;
    /** <code>Tags</code>  <a name="cfn-iot-thinggroup-tags"></a>
  Metadata which can be used to manage the thing group or dynamic thing group.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    tags?: Tag[];
}
