import { Value } from '../../cloudformation/Value';
import { Tag } from '../Tag';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type KeyPairAttributes = {
    KeyPairId: Attribute<string>;
    KeyFingerprint: Attribute<string>;
};
export type KeyPair = AwsResource<'AWS::EC2::KeyPair', KeyPairProperties, KeyPairAttributes>;
/**
  Specifies a key pair for use with an Amazon Elastic Compute Cloud instance as follows:
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-keypair.html">the AWS Docs</a>
*/
export declare function keyPair(keyPairProps: KeyPairProperties): KeyPair;
/**
  Specifies a key pair for use with an Amazon Elastic Compute Cloud instance as follows:
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-keypair.html">the AWS Docs</a>
*/
export interface KeyPairProperties {
    /** <code>KeyName</code>  <a name="cfn-ec2-keypair-keyname"></a>
  A unique name for the key pair.<br />
  Constraints: Up to 255 ASCII characters<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    keyName: Value<string>;
    /** <code>KeyType</code>  <a name="cfn-ec2-keypair-keytype"></a>
  The type of key pair. Note that ED25519 keys are not supported for Windows instances.<br />
  If the <code>PublicKeyMaterial</code> property is specified, the <code>KeyType</code> property is ignored, and the key type is inferred from the <code>PublicKeyMaterial</code> value.<br />
  Default: <code>rsa</code><br />
  
  Required: No<br />
  
  Allowed values: <code>ed25519 | rsa</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    keyType?: Value<'ed25519' | 'rsa'>;
    /** <code>KeyFormat</code>  <a name="cfn-ec2-keypair-keyformat"></a>
  The format of the key pair.<br />
  Default: <code>pem</code><br />
  
  Required: No<br />
  
  Allowed values: <code>pem | ppk</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    keyFormat?: Value<'pem' | 'ppk'>;
    /** <code>PublicKeyMaterial</code>  <a name="cfn-ec2-keypair-publickeymaterial"></a>
  The public key material. The <code>PublicKeyMaterial</code> property is used to import a key pair. If this property is not specified, then a new key pair will be created.<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> */
    publicKeyMaterial?: Value<string>;
    /** <code>Tags</code>  <a name="cfn-ec2-keypair-tags"></a>
  The tags to apply to the key pair.<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> */
    tags?: Tag[];
}
