import { EIP712TypedData, MessageData } from 'eth-sig-util';
import type { UserAuthConfig, AuthService } from './types';
export declare class UserAuth implements AuthService {
    /**
     * Configuration passed in by the consumer (with defaults)
     */
    private config;
    /**
     * Hedgehog instance to handle auth
     */
    private readonly hedgehog;
    constructor(config?: UserAuthConfig);
    signUp: ({ email, password }: {
        email: string;
        password: string;
    }) => Promise<import("ethereumjs-wallet").default>;
    signIn: ({ email, password, otp }: {
        email: string;
        password: string;
        otp?: string | undefined;
    }) => Promise<import("ethereumjs-wallet").default>;
    signOut: () => Promise<void>;
    isSignedIn: () => boolean;
    getSharedSecret: (publicKey: string | Uint8Array) => Promise<Uint8Array>;
    sign: (data: string | Uint8Array) => Promise<[Uint8Array, number]>;
    hashAndSign: (data: string) => Promise<string>;
    signTransaction: (data: MessageData<EIP712TypedData>['data']) => Promise<string>;
    getAddress: () => Promise<string>;
}
