export interface Options {
  /**
   * @description AWS S3 bucket name to deploy to.
   */
  bucket: string;
  /**
   * @description Enable output of debugging log messages.
   * @default false
   */
  debug?: boolean;
  /**
   * @description Do not prompt for confirmations.
   * @default false
   */
  'non-interactive'?: boolean;
  /**
   * @description Logging output format.
   * @default "text"
   */
  'output-format'?: 'colorized' | 'json' | 'text';
  /**
   * @description Apply ACL to specific pattern(s).
   * The first pattern to match the path is applied.
   * @default []
   */
  acl?: string[];
  /**
   * @description Apply Cache Control to specific pattern(s).
   * The first pattern to match the path is applied.
   * @default []
   */
  'cache-control'?: string[];
  /**
   * @description Delete objects in AWS S3 that do not exist locally.
   * Objects are retained if both this option and soft-delete are omitted.
   * @default false
   */
  delete?: boolean;
  /**
   * @description Pattern(s) to skip from deletion.
   * @default []
   */
  retain?: string[];
  /**
   * @description Path to remote directory to sync to.
   */
  destination?: string;
  /**
   * @description AWS CloudFront distribution ID to invalidate.
   * No invalidation is performed if this option is omitted.
   */
  distribution: string;
  /**
   * @description Pattern(s) to exclude from deployment
   * @default []
   */
  exclude?: string[];
  /**
   * @description Set the invalidation path(s) instead of automatically detecting
   * objects to invalidate. Paths should be absolute (with a leading slash).
   * @default []
   */
  'invalidation-path'?: string[];
  /**
   * @description Use recommended settings for React applications.
   * @default false
   */
  react?: boolean;
  /**
   * @description Tag objects in AWS S3 that do not exist locally. Objects are retained
   * if both this option and delete are omitted.
   * @default false
   */
  'soft-delete'?: boolean;
  /**
   * @description Key used for generated soft-deletion lifecycle policy tag.
   * @default "deleted"
   */
  'soft-delete-tag-key'?: string;
  /**
   * @description Value used for generated soft-deletion lifecycle policy tag.
   * @default "true"
   */
  'soft-delete-tag-value'?: string;
  /**
   * @description Path to local directory to sync from.
   * @default "."
   */
  source?: string;
  /**
   * @description Apply tags to specific pattern(s).
   * All patterns that match the path are applied.
   * @default []
   */
  tags?: string[];
}
