import { AnyValue } from '../../common/types/custom_type.types.cjs';

declare const HashUtil: (_config?: {
    salt?: string | string[];
}) => {
    crypto: {
        hash: <M extends AnyValue>(messageOrData: M, options?: {
            algorithm?: `sha256` | `sha1` | `sha512` | `md5`;
        }) => string;
        verify: <D extends AnyValue, T extends string>(data: D, expectedHash: T, options?: {
            algorithm?: `sha256` | `sha1` | `sha512` | `md5`;
        }) => boolean;
    };
    argon2: {
        hash: <M_1 extends AnyValue>(messageOrData: M_1, options?: {
            algorithm?: `argon2id` | `argon2i` | `argon2d`;
        }) => Promise<string>;
        verify: <D_1 extends AnyValue, T_1 extends string>(data: D_1, expectedHash: T_1, options?: {
            algorithm?: `argon2id` | `argon2i` | `argon2d`;
        }) => Promise<boolean>;
    };
};

export { HashUtil };
