import { Value } from '../../cloudformation/Value';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type PolicyTemplateAttributes = {
    PolicyTemplateId: Attribute<string>;
};
export type PolicyTemplate = AwsResource<'AWS::VerifiedPermissions::PolicyTemplate', PolicyTemplateProperties, PolicyTemplateAttributes>;
/**
  Creates a policy template. A template can use placeholders for the principal and resource. A template must be instantiated into a policy by associating it with specific principals and resources to use for the placeholders. That instantiated policy can then be considered in authorization decisions. The instantiated policy works identically to any other policy, except that it is dynamically linked to the template. If the template changes, then any policies that are linked to that template are immediately updated as well.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-verifiedpermissions-policytemplate.html">the AWS Docs</a>
*/
export declare function policyTemplate(policyTemplateProps: PolicyTemplateProperties): PolicyTemplate;
/**
  Creates a policy template. A template can use placeholders for the principal and resource. A template must be instantiated into a policy by associating it with specific principals and resources to use for the placeholders. That instantiated policy can then be considered in authorization decisions. The instantiated policy works identically to any other policy, except that it is dynamically linked to the template. If the template changes, then any policies that are linked to that template are immediately updated as well.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-verifiedpermissions-policytemplate.html">the AWS Docs</a>
*/
export interface PolicyTemplateProperties {
    /** <code>Description</code>  <a name="cfn-verifiedpermissions-policytemplate-description"></a>
  The description to attach to the new or updated policy template.<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> */
    description?: Value<string>;
    /** <code>Statement</code>  <a name="cfn-verifiedpermissions-policytemplate-statement"></a>
  Specifies the content that you want to use for the new policy template, written in the Cedar policy language.<br />
  
  Required: Yes<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> */
    statement: Value<string>;
    /** <code>PolicyStoreId</code>  <a name="cfn-verifiedpermissions-policytemplate-policystoreid"></a>
  The unique identifier of the policy store that contains the template.<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> */
    policyStoreId?: Value<string>;
}
