import type { HashDriverContract } from './types.ts'; /** * Hash and verify values using a dedicated hash driver. The Hash * works as an adapter across different drivers. * * ```ts * const hash = new Hash(new Argon()) * const hashedPassword = await hash.make('secret') * * const isValid = await hash.verify(hashedPassword, 'secret') * console.log(isValid) * ``` */ export declare class Hash implements HashDriverContract { #private; /** * Create a new Hash instance with the specified driver * * @param driver - The hash driver implementation to use */ constructor(driver: HashDriverContract); /** * Check if the value is a valid hash. This method just checks * for the formatting of the hash * * @param value - The value to check * @return True if the value is a valid hash format */ isValidHash(value: string): boolean; /** * Hash plain text value * * @param value - The plain text value to hash * @return Promise resolving to the hashed value */ make(value: string): Promise; /** * Verify the plain text value against an existing hash * * @param hashedValue - The hashed value to verify against * @param plainValue - The plain text value to verify * @return Promise resolving to true if verification succeeds */ verify(hashedValue: string, plainValue: string): Promise; /** * Find if the hash value needs a rehash or not. * * @param hashedValue - The hashed value to check * @return True if the hash needs to be rehashed */ needsReHash(hashedValue: string): boolean; /** * Assert the plain value passes the hash verification * * @param hashedValue - The hashed value to verify against * @param plainValue - The plain text value to verify * @return Promise that resolves if verification passes, throws if it fails */ assertEquals(hashedValue: string, plainValue: string): Promise; /** * Assert the plain value fails the hash verification * * @param hashedValue - The hashed value to verify against * @param plainValue - The plain text value to verify * @return Promise that resolves if verification fails, throws if it passes */ assertNotEquals(hashedValue: string, plainValue: string): Promise; }