import { AttributePayloadProps } from './thing/AttributePayloadProps';
import { Value } from '../../cloudformation/Value';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type ThingAttributes = {
    Id: Attribute<string>;
    Arn: Attribute<string>;
};
export type Thing = AwsResource<'AWS::IoT::Thing', ThingProperties, ThingAttributes>;
/**
  Use the <code>AWS::IoT::Thing</code> resource to declare an AWS IoT thing.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thing.html">the AWS Docs</a>
*/
export declare function thing(thingProps?: ThingProperties): Thing;
/**
  Use the <code>AWS::IoT::Thing</code> resource to declare an AWS IoT thing.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thing.html">the AWS Docs</a>
*/
export interface ThingProperties {
    /** <code>AttributePayload</code>  <a name="cfn-iot-thing-attributepayload"></a>
  A string that contains up to three key value pairs. Maximum length of 800. Duplicates not allowed.<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> */
    attributePayload?: AttributePayloadProps;
    /** <code>ThingName</code>  <a name="cfn-iot-thing-thingname"></a>
  The name of the thing to update.<br />
  You can’t change a thing’s name. To change a thing’s name, you must create a new thing, give it the new name, and then delete the old thing.<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> */
    thingName?: Value<string>;
}
