import { VIRGIL_STREAM_SIGNING_STATE, VIRGIL_STREAM_ENCRYPTING_STATE, VIRGIL_STREAM_VERIFYING_STATE, VIRGIL_STREAM_DECRYPTING_STATE } from './constants';
export declare type NodeBuffer = import('@virgilsecurity/e3kit-base').NodeBuffer;
export declare type Data = import('@virgilsecurity/e3kit-base').Data;
export declare type ICard = import('@virgilsecurity/e3kit-base').ICard;
export declare type IPublicKey = import('@virgilsecurity/e3kit-base').IPublicKey;
export declare type EThreeInitializeOptions = import('@virgilsecurity/e3kit-base').EThreeInitializeOptions;
export declare type EThreeCtorOptions = import('@virgilsecurity/e3kit-base').EThreeCtorOptions;
export declare type FindUsersResult = import('@virgilsecurity/e3kit-base').FindUsersResult;
export declare type LookupResult = import('@virgilsecurity/e3kit-base').LookupResult;
export declare type VirgilCrypto = import('@virgilsecurity/base-crypto').VirgilCrypto;
export declare type VirgilPrivateKey = import('@virgilsecurity/base-crypto').VirgilPrivateKey;
/**
 * Callback invoked for each chunk being processed in encryptFile method.
 */
export declare type onEncryptProgressCallback = (snapshot: onEncryptProgressSnapshot) => void;
/**
 * Callback invoked for each chunk being processed in decryptFile method.
 */
export declare type onDecryptProgressCallback = (snapshot: onDecryptProgressSnapshot) => void;
interface onProgressSnapshot {
    /**
     * Total size of the file being processed.
     */
    fileSize: number;
    /**
     * Size of the file being encrypted in bytes.
     */
    bytesProcessed: number;
}
/**
 * An argument of the onEncryptProgressCallback.
 */
export interface onEncryptProgressSnapshot extends onProgressSnapshot {
    /**
     * Current status of processing. Can be "Signing" then "Encrypting".
     */
    state: VIRGIL_STREAM_SIGNING_STATE | VIRGIL_STREAM_ENCRYPTING_STATE;
}
export interface onDecryptProgressSnapshot extends onProgressSnapshot {
    /**
     * Current status of processing. Can be "Decrypting" then "Verifying".
     */
    state: VIRGIL_STREAM_DECRYPTING_STATE | VIRGIL_STREAM_VERIFYING_STATE;
}
interface FileOptions {
    /**
     * Size of chunk being processed at one time. Bigger chunks make function execute faster, but
     * consume more memory in one time and can cause a performance hit. Default value is 64kb.
     */
    chunkSize?: number;
    /**
     * Instance of `AbortSignal` which can be received from `AbortController`. Used to cancel encryptFile
     * operation.
     */
    signal?: AbortSignal;
}
/**
 * Options for encryptedFile method.
 */
export interface EncryptFileOptions extends FileOptions {
    /**
     * `onEncryptProgressCallback` parameter.
     */
    onProgress?: onEncryptProgressCallback;
}
/**
 * Options for decryptedFile method.
 */
export interface DecryptFileOptions extends FileOptions {
    /**
     * `onDecryptProgressCallback` parameter.
     */
    onProgress?: onDecryptProgressCallback;
    encryptedOn?: Date;
}
export {};
