/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { Bytes } from "../util/Bytes.js";
import { Crypto } from "./Crypto.js";
export interface PbkdfParameters {
    iterations: number;
    salt: Bytes;
}
export declare class Spake2p {
    #private;
    static computeW0W1(crypto: Crypto, { iterations, salt }: PbkdfParameters, pin: number): Promise<{
        w0: bigint;
        w1: bigint;
    }>;
    static computeW0L(crypto: Crypto, pbkdfParameters: PbkdfParameters, pin: number): Promise<{
        w0: bigint;
        L: AllowSharedBufferSource;
    }>;
    static create(crypto: Crypto, context: Bytes, w0: bigint): Spake2p;
    constructor(crypto: Crypto, context: Bytes, random: bigint, w0: bigint);
    computeX(): Bytes;
    computeY(): Bytes;
    computeSecretAndVerifiersFromY(w1: bigint, X: Bytes, Y: Bytes): Promise<{
        Ke: Uint8Array<ArrayBuffer>;
        hAY: AllowSharedBufferSource;
        hBX: AllowSharedBufferSource;
    }>;
    computeSecretAndVerifiersFromX(L: Bytes, X: Bytes, Y: Bytes): Promise<{
        Ke: Uint8Array<ArrayBuffer>;
        hAY: AllowSharedBufferSource;
        hBX: AllowSharedBufferSource;
    }>;
    private computeSecretAndVerifiers;
    private computeTranscriptHash;
    private addToContext;
}
//# sourceMappingURL=Spake2p.d.ts.map