import { type Account, type Address, type Hex } from 'viem'; import type { ENSValidatorConfig, OwnableValidatorConfig, OwnerSet, RhinestoneAccountConfig, WebauthnValidatorConfig } from '../../types'; import { type Module } from '../common'; declare const SMART_SESSION_EMISSARY_ADDRESS_DEV: Address; declare const SMART_SESSION_EMISSARY_ADDRESS: Address; interface PublicKey { prefix?: number | undefined; x: bigint; y: bigint; } interface WebauthnCredential { pubKey: PublicKey | Hex | Uint8Array; authenticatorId: string; } declare const OWNABLE_VALIDATOR_ADDRESS: Address; declare const ENS_HCA_MODULE: Address; declare const WEBAUTHN_VALIDATOR_ADDRESS: Address; declare const MULTI_FACTOR_VALIDATOR_ADDRESS: Address; declare const WEBAUTHN_V0_VALIDATOR_ADDRESS: Address; declare function ownerSetUsesEns(owners: OwnerSet): boolean; declare function getOwnerValidator(config: RhinestoneAccountConfig): Module; declare function getMockSignature(ownerSet: OwnerSet): Hex; declare function getValidator(owners: OwnerSet): Module; declare function getOwnableValidator(threshold: number, owners: Address[], address?: Address): Module; declare function getENSValidator(threshold: number, owners: Address[], ownerExpirations: number[]): Module; declare function getWebAuthnValidator(threshold: number, webAuthnCredentials: WebauthnCredential[], address?: Address): Module; /** * Builds the stored-data blob for a WebAuthn passkey subvalidator inside MFA. * * The deployed WebAuthn validator's `validateSignatureWithData` expects: * data = abi.encode(WebAuthVerificationContext, address account) * signature = abi.encode(WebAuthnAuth[]) * * This function pre-computes the account-scoped credential IDs * (`keccak256(abi.encode(x, y, account))`), sorts them, aligns the credential * data to the same order, and packs the full context blob that can be stored * by the MFA module during `onInstall`. * * `usePrecompile` is set to `false` so the stored data works on any network; * the fallback FCL path is always available. */ declare function buildWebAuthnMFAStoredData(passkeyThreshold: number, credentials: { pubKeyX: bigint; pubKeyY: bigint; requireUV: boolean; }[], accountAddress: Address): Hex; declare function getMultiFactorSubValidatorData(validator: OwnableValidatorConfig | ENSValidatorConfig | WebauthnValidatorConfig, accountAddress?: Address): Hex; declare function getMultiFactorValidator(threshold: number, validators: (OwnableValidatorConfig | ENSValidatorConfig | WebauthnValidatorConfig | null)[], address?: Address, accountAddress?: Address): Module; declare function getSocialRecoveryValidator(guardians: Account[], threshold?: number): Module; declare function supportsEip712(validator: Module): boolean; export { OWNABLE_VALIDATOR_ADDRESS, ENS_HCA_MODULE, WEBAUTHN_VALIDATOR_ADDRESS, MULTI_FACTOR_VALIDATOR_ADDRESS, WEBAUTHN_V0_VALIDATOR_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS_DEV, getOwnerValidator, getOwnableValidator, getENSValidator, getWebAuthnValidator, getMultiFactorValidator, buildWebAuthnMFAStoredData, getMultiFactorSubValidatorData, getSocialRecoveryValidator, getValidator, getMockSignature, supportsEip712, ownerSetUsesEns, }; export type { WebauthnCredential }; //# sourceMappingURL=core.d.ts.map