import type { Provider } from '../types/provider';
import type { User } from '../types/user';
import { type WebAuthnSignInOptions, type WebAuthnSignUpOptions } from '../types/webauthn';
import type { AuthProvider } from './_auth-client.providers';
export declare class WebAuthnProvider implements AuthProvider {
    #private;
    /**
     * Gets the identifier of the provider.
     * @returns {Provider} The identifier of the provider is webauthn.
     */
    get id(): Provider;
    /**
     * Signs up a user by creating a new passkey.
     *
     * @param {Object} params - The sign-up parameters.
     * @param {WebAuthnSignUpOptions} [params.options] - Optional configuration for the login request.
     * @param {loadAuth} params.loadAuthWithUser - The function to load the authentication with the user. Provided as a callback to avoid recursive import.
     *
     * @returns {Promise<void>} Resolves if the sign-up is successful.
     */
    signUp({ options: { onProgress, maxTimeToLiveInMilliseconds, passkey: passkeyOptions }, loadAuthWithUser }: {
        options?: WebAuthnSignUpOptions;
        loadAuthWithUser: (params: {
            user: User;
        }) => Promise<void>;
    }): Promise<void>;
    /**
     * Signs in a user with an existing passkey.
     *
     * @param {Object} params - The sign-in parameters.
     * @param {WebAuthnSignInOptions} [params.options] - Optional configuration for the login request.
     * @param {loadAuth} params.loadAuth - The function to load the user. Provided as a callback to avoid recursive import.
     *
     * @returns {Promise<void>} Resolves if the sign-in is successful.
     */
    signIn({ options: { onProgress, maxTimeToLiveInMilliseconds }, loadAuth }: {
        options?: WebAuthnSignInOptions;
        loadAuth: () => Promise<void>;
    }): Promise<void>;
}
