import type { MetadataStatement } from '../metadata/mdsTypes.js'; type VerificationMode = 'permissive' | 'strict'; /** * A basic service for coordinating interactions with the FIDO Metadata Service. This includes BLOB * download and parsing, and on-demand requesting and caching of individual metadata statements. * * https://fidoalliance.org/metadata/ */ export declare class BaseMetadataService { private mdsCache; private statementCache; private state; private verificationMode; /** * Prepare the service to handle remote MDS servers and/or cache local metadata statements. * * **Options:** * * @param opts.mdsServers An array of URLs to FIDO Alliance Metadata Service * (version 3.0)-compatible servers. Defaults to the official FIDO MDS server * @param opts.statements An array of local metadata statements * @param opts.verificationMode How MetadataService will handle unregistered AAGUIDs. Defaults to * `"strict"` which throws errors during registration response verification when an * unregistered AAGUID is encountered. Set to `"permissive"` to allow registration by * authenticators with unregistered AAGUIDs */ initialize(opts?: { mdsServers?: string[]; statements?: MetadataStatement[]; verificationMode?: VerificationMode; }): Promise; /** * Get a metadata statement for a given AAGUID. * * This method will coordinate updating the cache as per the `nextUpdate` property in the initial * BLOB download. */ getStatement(aaguid: string | Uint8Array): Promise; /** * Download and process the latest BLOB from MDS */ private downloadBlob; /** * A helper method to pause execution until the service is ready */ private pauseUntilReady; /** * Report service status on change */ private setState; } export declare const MetadataService: BaseMetadataService; export {};