import { HexInput } from "../types/index.js"; import { AccountAddress, AccountAddressInput } from "../core/accountAddress.js"; import { Groth16VerificationKey, ZeroKnowledgeSig } from "../core/crypto/keyless.js"; import { EphemeralKeyPair } from "./EphemeralKeyPair.js"; import { Deserializer, Serializer } from "../bcs/index.js"; import { FederatedKeylessPublicKey } from "../core/crypto/federatedKeyless.js"; import { AbstractKeylessAccount, ProofFetchCallback } from "./AbstractKeylessAccount.js"; /** * Account implementation for the FederatedKeyless authentication scheme. * * Used to represent a FederatedKeyless based account and sign transactions with it. * * Use `FederatedKeylessAccount.create()` to instantiate a KeylessAccount with a JSON Web Token (JWT), proof, EphemeralKeyPair and the * address the JSON Web Key Set (JWKS) are installed that will be used to verify the JWT. * * When the proof expires or the JWT becomes invalid, the KeylessAccount must be instantiated again with a new JWT, * EphemeralKeyPair, and corresponding proof. * @group Implementation * @category Account (On-Chain Model) */ export declare class FederatedKeylessAccount extends AbstractKeylessAccount { /** * The FederatedKeylessPublicKey associated with the account * @group Implementation * @category Account (On-Chain Model) */ readonly publicKey: FederatedKeylessPublicKey; readonly audless: boolean; /** * Use the static generator `FederatedKeylessAccount.create(...)` instead. * Creates a KeylessAccount instance using the provided parameters. * This function allows you to set up a KeylessAccount with specific attributes such as address, proof, and JWT. * * @param args - The parameters for creating a KeylessAccount. * @param args.address - Optional account address associated with the KeylessAccount. * @param args.proof - A Zero Knowledge Signature or a promise that resolves to one. * @param args.jwt - A JSON Web Token used for authentication. * @param args.ephemeralKeyPair - The ephemeral key pair used in the account creation. * @param args.jwkAddress - The address which stores the JSON Web Key Set (JWKS) used to verify the JWT. * @param args.uidKey - Optional key for user identification, defaults to "sub". * @param args.proofFetchCallback - Optional callback function for fetching proof. */ constructor(args: { address?: AccountAddress; ephemeralKeyPair: EphemeralKeyPair; iss: string; uidKey: string; uidVal: string; aud: string; pepper: HexInput; jwkAddress: AccountAddress; proof: ZeroKnowledgeSig | Promise; proofFetchCallback?: ProofFetchCallback; jwt: string; verificationKeyHash?: HexInput; audless?: boolean; }); /** * Serializes the transaction data into a format suitable for transmission or storage. * This function ensures that both the transaction bytes and the proof are properly serialized. * * @param serializer - The serializer instance used to convert the transaction data into bytes. */ serialize(serializer: Serializer): void; /** * Deserializes the provided deserializer to create a KeylessAccount instance. * This function extracts necessary components such as the JWT, UID key, pepper, ephemeral key pair, and proof from the deserializer. * * @param deserializer - The deserializer instance used to retrieve the serialized data. * @returns A KeylessAccount instance created from the deserialized data. */ static deserialize(deserializer: Deserializer): FederatedKeylessAccount; /** * Deserialize bytes using this account's information. * * @param bytes The bytes being interpreted. * @returns */ static fromBytes(bytes: HexInput): FederatedKeylessAccount; /** * Creates a KeylessAccount instance using the provided parameters. * This function allows you to set up a KeylessAccount with specific attributes such as address, proof, and JWT. * This is used instead of the KeylessAccount constructor. * * @param args - The parameters for creating a KeylessAccount. * @param args.address - Optional account address associated with the KeylessAccount. * @param args.proof - A Zero Knowledge Signature or a promise that resolves to one. * @param args.jwt - A JSON Web Token used for authentication. * @param args.ephemeralKeyPair - The ephemeral key pair used in the account creation. * @param args.jwkAddress - The address which stores the JSON Web Key Set (JWKS) used to verify the JWT. * @param args.uidKey - Optional key for user identification, defaults to "sub". * @param args.proofFetchCallback - Optional callback function for fetching proof. */ static create(args: { address?: AccountAddress; proof: ZeroKnowledgeSig | Promise; jwt: string; ephemeralKeyPair: EphemeralKeyPair; pepper: HexInput; jwkAddress: AccountAddressInput; uidKey?: string; proofFetchCallback?: ProofFetchCallback; verificationKey?: Groth16VerificationKey; verificationKeyHash?: Uint8Array; }): FederatedKeylessAccount; } //# sourceMappingURL=FederatedKeylessAccount.d.ts.map