/// <reference path="../../adonis-typings/hash.d.ts" />
import { ArgonConfig, ArgonContract } from '@ioc:Adonis/Core/Hash';
/**
 * Hash driver built on top of argon hashing algorithm. The driver adheres
 * to `phc` string format.
 */
export declare class Argon implements ArgonContract {
    private config;
    /**
     * A list of ids to find if hash belongs to this driver
     * or not.
     */
    ids: ArgonContract['ids'];
    /**
     * A list of params encoded to the hash value.
     */
    params: ArgonContract['params'];
    /**
     * The current argon version in use
     */
    version: number;
    constructor(config: ArgonConfig);
    /**
     * Hash a value using argon algorithm. The options can be used to override
     * default settings.
     */
    make(value: string): any;
    /**
     * Verifies the hash against a plain value to find if it's
     * a valid hash or not.
     */
    verify(hashedValue: string, plainValue: string): Promise<boolean>;
    /**
     * Returns a boolean telling if the hash needs a rehash or not. The rehash is
     * required when
     *
     * 1. The argon2 version is changed
     * 2. Number of iterations are changed.
     * 3. The memory value is changed.
     * 4. The parellelism value is changed.
     * 5. The argon variant is changed.
     */
    needsReHash(value: string): boolean;
}
