import type { OIDCOptions } from "../types"; import { CredifyClass } from "./common"; export declare class OIDC extends CredifyClass { /** * Generates a new OIDC URL. * For data consumer * @param id - Organization ID hosting this server * @param redirectUrl * @param scopes * @param options * @returns { oidcUrl: string, privateKey: string } - this private key is base64 URL encoded data. */ initiateOIDC(id: string, redirectUrl: string, scopes: string[], options?: OIDCOptions): Promise<{ oidcUrl: string; privateKey: string; }>; /** * Generates a new access token out of an authorization code. * @param id - client ID * @param code - Authorization code * @param redirectUri * @returns Promise<{ access_token: string, expires_in: number, id_token: string, scope: string, token_type: string }> */ generateAccessToken(id: string, code: string, redirectUri: string): Promise<{ access_token: string; expires_in: number; id_token: string; scope: string; token_type: string; }>; private static decryptClaimsV1; /** * Handle decrypt claims version 2 * @param encryptedClaims claims that encrypted * @example encryptedClaims * { _claim_names: {address: 'address', address_commitment: 'address', email: 'email'}, _claim_sources: { address: {JWT: 'eyJhbGciOiJSU0EtT0FFUC0yNTYiLCJlbmMiOiJBMjU2R0NNIn0...'}, email: {JWT: 'eyJhbGciOiJSU0EtT0FFUC0yNTYiLCJlbmMiOiJBMjU2R0NNIn0...'} } } * @param enc Encryption object to manage keys and crypto operations * @returns * @example Output * { _claim_names: {address: 'address', address_commitment: 'address', email: 'email'}, _claim_sources: { address: {JWT: 'eyJhbGciOiJSU0EtT0FFUC0yNTYiLCJlbmMiOiJBMjU2R0NNIn0...'}, email: {JWT: 'eyJhbGciOiJSU0EtT0FFUC0yNTYiLCJlbmMiOiJBMjU2R0NNIn0...'} }, address: { locality: 'Châu Phú', region: 'An Giang', sublocality: 'Bình Mỹ' }, address_commitment: 'gpx2VmQgEr4tJqpKYQh7MsPC2s0WDkz4Kx-pnMaaWd0', email: 'Scot42@gmail.com', } */ private static decryptClaimsV2; /** * Gets userinfo from OIDC * For data consumer * @param accessToken * @param privateKey - Base64 URL encoded private key or raw PEM private key starting with `-----BEGIN PRIVATE KEY-----`. */ userinfo(accessToken: string, privateKey: string): Promise; }