/// <reference types="node" />
import { Feedback } from "./feedback";
import { CryptoKeyManager } from "./crypto_key_manager";
import { MatchingDotenvVariable } from "./dotenv_variable";
import { CryptoWrapperResult, CryptoWrapperInterface } from "./crypto_wrapper";
import { DotenvParserBase } from "./dotenv_parser";
/**
 * This class read/writes/encrypts/decrypts the a dotenv file.
 * It can also test a dotenv file for errors.
 */
export declare class DotenvProcessor {
    plainTextParser: DotenvParserBase;
    cipheredTextParser: DotenvParserBase;
    matchingDotenvVariables: MatchingDotenvVariable[];
    nonMatchingDotenvVariables: MatchingDotenvVariable[];
    dotenvPath?: string;
    dotenvAsBuffer?: Buffer;
    cryptoKeyMgr: CryptoKeyManager;
    cryptoWrapper: CryptoWrapperInterface;
    /**
     * Used exclusively for testing to force the IV to be the same value, so encrypted
     * always match the expected value. If TRUE, this weakens the strength of the encryption.
     */
    private forceIvToFixedValue;
    constructor(ckm: CryptoKeyManager, pathOrBuffer?: string | Buffer, forceIvToFixedValue?: boolean);
    defaultBackupPath(): string;
    createFileNameForBackupFile(backupFolder?: string): string;
    createBackupFile(backupFolder?: string): string;
    private determineMatchingCipheredAndPlainTextVariables;
    private feedbackPlainTextVariables;
    private feedbackErrorDecryptingVariables;
    private feedbackErrorEncryptingVariables;
    private feedbackErrorValuesDoNotMatch;
    private feedbackInfoMatchingValues;
    private feedbackSuccessfullyDecrypted;
    private feedbackSuccessfullyEncrypted;
    private feedbackEncryptionKeyErrors;
    private feedbackCipheredVariableErrors;
    private feedbackPlainTextVariableErrors;
    private feedbackMissingEncryptionKeys;
    private feedbackCipheredVariables;
    private feedbackEncryptionKeys;
    private feedbackInvalidVariableFormats;
    private testImplementation;
    test(): Feedback;
    decrypt(): CryptoWrapperResult[];
    encrypt(): CryptoWrapperResult[];
    private decryptImplementation;
    decryptToProcessEnvironment(): Feedback;
    decryptToFile(destinationFile: string): Feedback;
    encryptToFile(destinationFile: string): Feedback;
}
