import { PDFServicesJobParams } from "../PDFServicesJobParams";
import { EncryptionAlgorithm } from "./EncryptionAlgorithm";
import { ContentEncryption } from "./ContentEncryption";
import { Permissions } from "./Permissions";
/**
 * Parameters for securing PDF file with passwords and document permissions using {@link ProtectPDFJob}.
 */
export declare class ProtectPDFParams implements PDFServicesJobParams {
    private readonly _userPassword?;
    private readonly _ownerPassword?;
    private readonly _encryptionAlgorithm;
    private readonly _contentEncryption?;
    private readonly _permissions?;
    /**
     * Constructs a new `ProtectPDFParams` instance.
     *
     * @param params - The parameters for constructing a `ProtectPDFParams` instance.
     * @param [params.userPassword] - The user password required for opening the encrypted PDF file.
     * Allowed maximum length for the user password is 128 characters.
     * @param [params.ownerPassword] - The owner password required to control access permissions in the
     * encrypted PDF file. This password can also be used to open/view the encrypted PDF file. Allowed maximum length
     * for the user password is 128 characters.
     * @param params.encryptionAlgorithm The encryption algorithm required for encrypting the PDF file.
     * For AES-128 encryption, the password supports LATIN-I characters only. For AES-256 encryption, passwords
     * supports Unicode character set. Cannot be undefined.
     * @param [params.contentEncryption] The type of content to encrypt in the PDF file. Default value is
     * {@link ContentEncryption#ALL_CONTENT ALL_CONTENT}.
     * @param [params.permissions] The permissions for the encrypted PDF file. This includes permissions to
     * allow printing, editing and content copying in the PDF document. Permissions can only be used in case the
     * owner password is set.
     */
    constructor(params: {
        userPassword?: string;
        ownerPassword?: string;
        encryptionAlgorithm: EncryptionAlgorithm;
        contentEncryption?: ContentEncryption;
        permissions?: Permissions;
    });
    /**
     * Returns the user password of the resulting encrypted PDF file.
     *
     * @returns the user password
     */
    get userPassword(): string | undefined;
    /**
     * Returns the owner password of the resulting encrypted PDF file.
     *
     * @returns the owner password.
     */
    get ownerPassword(): string | undefined;
    /**
     * Returns the {@link EncryptionAlgorithm} of the resulting encrypted PDF file.
     *
     * @returns the encryption algorithm.
     */
    get encryptionAlgorithm(): EncryptionAlgorithm;
    /**
     * Returns the type of {@link ContentEncryption} for the resulting encrypted PDF file.
     *
     * @returns the type of content to encrypt.
     */
    get contentEncryption(): ContentEncryption | undefined;
    /**
     * Returns the document {@link Permissions} for the resulting encrypted PDF file.
     *
     * @returns the document permissions.
     */
    get permissions(): Permissions | undefined;
}
