/**
 * An interface defining user security settings for a PDF document. <para>Allows the developer to control user
 * access passwords, encryption, and also who may edit, print and copy content from the PDF document</para>
 * Implemented in {@link PdfDocument.setPermission}.
 */
export interface PdfPermission {
	/**
	 * No permissions (restrict all)
	 */
	None ?: boolean | undefined;
	/**
	 * Sets the permissions for users to extract or 'copy &amp; paste' content (text and images) from the PDF document for accessibility.
	 *
	 * `true` if users may 'copy and paste' content out of the PDF otherwise, `false`.
	 */
	AllowAccessibilityExtractContent ?: boolean | undefined;
	/**
	 * Sets the permissions for users to annotate the PDF document with comments.
	 * If AllowUserAnnotations is set `false`, the {@link PdfDocument.setOwnerPassword} must be set for the security
	 * measure to take effect.
	 */
	AllowAnnotations ?: boolean | undefined;
	/**
	 * Sets the permissions for users to add or insert pages to the PDF document
	 */
	AllowAssembleDocument ?: boolean | undefined;
	/**
	 * Sets the permissions for users to extract or 'copy &amp; paste' content (text and images) from
	 * the PDF document.
	 *
	 * If AllowUserCopyPasteContent is set `false`,  the {@link PdfDocument.setOwnerPassword} must also be set for the security measure to take effect.
	 *
	 * `true` if users may 'copy and paste' content out of the PDF otherwise, `false`.
	 */
	AllowExtractContent ?: boolean | undefined;
	/**
	 * Sets the permissions for users to fill-in (enter data into) forms in the PDF document. <para>If
	 * AllowUserFormData is set `false`, the {@link PdfDocument.setOwnerPassword} must be set for the security
	 * measure to take effect.
	 *
	 * If you want to make the form readonly in Adobe Acrobat Reader
	 * please call  {@link PdfDocument.MakePdfDocumentReadOnly} method or set {@link PdfPermission.AllowModify} to `false`
	 * and set {@link PdfDocument.setOwnerPassword}.
	 *
	 *
	 * `true` if users may annotate the PDF document, otherwise `false`.  Setting AllowUserFormData
	 * `true` will also enable annotations.
	 */
	AllowFillForms ?: boolean | undefined;
	/**
	 * In `false` user may only print the PDF at low resolution unless they have the Owner password.
	 */
	AllowPrintFullQuality ?: boolean | undefined;
	/**
	 * Gets or sets the permissions for users edit the PDF document.  The features to edit the document depends
	 * entirely on the PDF client software used by the end user.
	 *
	 * If editing rights are restricted, then
	 * the {@link PdfDocument.setOwnerPassword} must be set for the security measure to take effect.
	 */
	AllowModify ?: boolean | undefined;
	/**
	 * Gets or sets the permissions for users to print the PDF document.
	 *
	 * If print rights are restricted,
	 * then the {@link PdfDocument.setOwnerPassword} must be set for the security measure to take effect.
	 */
	AllowPrint ?: boolean | undefined;
	/**
	 * Allow all
	 */
	AllowAll ?: boolean | undefined;
}
