/** * @param {object} params * @param {object} params.response * @param {string} params.challengeToken * @param {string | string[]} params.expectedRpId * @param {string | string[] | RegExp} params.expectedOrigin * @param {string | Buffer} params.challengeSecret * @param {import('@exortek/challenge').IncrStore} params.challengeStore * @param {{ * publicKey?: import('node:crypto').KeyObject, * publicKeyCose?: Map, * algorithm?: number, * counter: number, * transports?: string[], * }} params.credential * @param {string} [params.expectedUserId] * @param {boolean} [params.requireUserVerification=true] * @param {boolean} [params.requireBackupEligible=false] * @param {boolean} [params.requireBackedUp=false] * @param {boolean} [params.allowCrossOriginCeremony=false] * Opt in to accepting `clientDataJSON.crossOrigin === true`. Off by * default, matching registration.finish — the assertion is normally * invoked from the top-level RP origin. * @param {string} [params.challengePrefix] * @returns {Promise<{ * verified: true, * newCounter: number, * credentialId: string, * userHandle: Uint8Array | null, * deviceType: 'singleDevice' | 'multiDevice', * backedUp: boolean, * extensionResults: { client: object, authenticator: object }, * rpId: string, * }>} */ export function finish(params: { response: object; challengeToken: string; expectedRpId: string | string[]; expectedOrigin: string | string[] | RegExp; challengeSecret: string | Buffer; challengeStore: import("@exortek/challenge").IncrStore; credential: { publicKey?: any; publicKeyCose?: Map; algorithm?: number; counter: number; transports?: string[]; }; expectedUserId?: string | undefined; requireUserVerification?: boolean | undefined; requireBackupEligible?: boolean | undefined; requireBackedUp?: boolean | undefined; allowCrossOriginCeremony?: boolean | undefined; challengePrefix?: string | undefined; }): Promise<{ verified: true; newCounter: number; credentialId: string; userHandle: Uint8Array | null; deviceType: "singleDevice" | "multiDevice"; backedUp: boolean; extensionResults: { client: object; authenticator: object; }; rpId: string; }>;