import { LambdaFunctionRecipeSourceProps } from './componentversion/LambdaFunctionRecipeSourceProps';
import { Value } from '../../cloudformation/Value';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type ComponentVersionAttributes = {
    ComponentName: Attribute<string>;
    Arn: Attribute<string>;
    ComponentVersion: Attribute<string>;
};
export type ComponentVersion = AwsResource<'AWS::GreengrassV2::ComponentVersion', ComponentVersionProperties, ComponentVersionAttributes>;
/**
  Creates a component. Components are software that run on AWS IoT Greengrass core devices. After you develop and test a component on your core device, you can use this operation to upload your component to AWS IoT Greengrass. Then, you can deploy the component to other core devices.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrassv2-componentversion.html">the AWS Docs</a>
*/
export declare function componentVersion(componentVersionProps?: ComponentVersionProperties): ComponentVersion;
/**
  Creates a component. Components are software that run on AWS IoT Greengrass core devices. After you develop and test a component on your core device, you can use this operation to upload your component to AWS IoT Greengrass. Then, you can deploy the component to other core devices.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrassv2-componentversion.html">the AWS Docs</a>
*/
export interface ComponentVersionProperties {
    /** <code>LambdaFunction</code>  <a name="cfn-greengrassv2-componentversion-lambdafunction"></a>
  The parameters to create a component from a Lambda function.<br />
  You must specify either <code>InlineRecipe</code> or <code>LambdaFunction</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-replacement">Replacement</a> */
    lambdaFunction?: LambdaFunctionRecipeSourceProps;
    /** <code>InlineRecipe</code>  <a name="cfn-greengrassv2-componentversion-inlinerecipe"></a>
  The recipe to use to create the component. The recipe defines the component’s metadata, parameters, dependencies, lifecycle, artifacts, and platform compatibility.<br />
  You must specify either <code>InlineRecipe</code> or <code>LambdaFunction</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-replacement">Replacement</a> */
    inlineRecipe?: Value<string>;
    /** <code>Tags</code>  <a name="cfn-greengrassv2-componentversion-tags"></a>
  Application-specific metadata to attach to the component version. You can use tags in IAM policies to control access to AWS IoT Greengrass resources. You can also use tags to categorize your resources. For more information, see <a href="https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html">Tag your AWS IoT Greengrass Version 2 resources</a> in the
  AWS IoT Greengrass V2 Developer Guide: br />
  This <code>Json</code> property type is processed as a map of key-value pairs. It uses the following format, which is different from most <code>Tags</code> implementations in AWS CloudFormation templates. */
    tags?: Value<{
        [key: string]: Value<string>;
    }>;
}
