import { Authority } from "../../authority/Authority"; import { ICrypto } from "../../crypto/ICrypto"; import { AccountInfo } from "../../account/AccountInfo"; import { AuthorityType } from "../../authority/AuthorityType"; import { Logger } from "../../logger/Logger"; import { TokenClaims } from "../../account/TokenClaims"; /** * Type that defines required and optional parameters for an Account field (based on universal cache schema implemented by all MSALs). * * Key : Value Schema * * Key: -- * * Value Schema: * { * homeAccountId: home account identifier for the auth scheme, * environment: entity that issued the token, represented as a full host * realm: Full tenant or organizational identifier that the account belongs to * localAccountId: Original tenant-specific accountID, usually used for legacy cases * username: primary username that represents the user, usually corresponds to preferred_username in the v2 endpt * authorityType: Accounts authority type as a string * name: Full name for the account, including given name and family name, * lastModificationTime: last time this entity was modified in the cache * lastModificationApp: * idTokenClaims: Object containing claims parsed from ID token * nativeAccountId: Account identifier on the native device * } * @internal */ export declare class AccountEntity { homeAccountId: string; environment: string; realm: string; localAccountId: string; username: string; authorityType: string; clientInfo?: string; name?: string; lastModificationTime?: string; lastModificationApp?: string; cloudGraphHostName?: string; msGraphHost?: string; idTokenClaims?: TokenClaims; nativeAccountId?: string; /** * Generate Account Id key component as per the schema: - */ generateAccountId(): string; /** * Generate Account Cache Key as per the schema: -- */ generateAccountKey(): string; /** * Returns the AccountInfo interface for this account. */ getAccountInfo(): AccountInfo; /** * Generates account key from interface * @param accountInterface */ static generateAccountCacheKey(accountInterface: AccountInfo): string; /** * Build Account cache from IdToken, clientInfo and authority/policy. Associated with AAD. * @param accountDetails */ static createAccount(accountDetails: { homeAccountId: string; idTokenClaims: TokenClaims; clientInfo?: string; cloudGraphHostName?: string; msGraphHost?: string; environment?: string; nativeAccountId?: string; }, authority: Authority): AccountEntity; /** * Creates an AccountEntity object from AccountInfo * @param accountInfo * @param cloudGraphHostName * @param msGraphHost * @returns */ static createFromAccountInfo(accountInfo: AccountInfo, cloudGraphHostName?: string, msGraphHost?: string): AccountEntity; /** * Generate HomeAccountId from server response * @param serverClientInfo * @param authType */ static generateHomeAccountId(serverClientInfo: string, authType: AuthorityType, logger: Logger, cryptoObj: ICrypto, idTokenClaims?: TokenClaims): string; /** * Validates an entity: checks for all expected params * @param entity */ static isAccountEntity(entity: object): boolean; /** * Helper function to determine whether 2 accountInfo objects represent the same account * @param accountA * @param accountB * @param compareClaims - If set to true idTokenClaims will also be compared to determine account equality */ static accountInfoIsEqual(accountA: AccountInfo | null, accountB: AccountInfo | null, compareClaims?: boolean): boolean; } //# sourceMappingURL=AccountEntity.d.ts.map