//#region src/user-api/credential.d.ts interface UserApiCredentialInput { applicationId: string; forceRefresh?: boolean; } interface UserApiCredential { tokenType: "Bearer"; token: string; expiresAt: Date; } //#endregion //#region src/errors.d.ts type AuthErrorCode = "invalid_credentials" | "invalid_auth_input" | "account_conflict" | "password_reset_invalid" | "authentication_required" | "request_origin_denied" | "invalid_request" | "invalid_invitation" | "invitation_unavailable" | "recipient_unavailable" | "invitation_recipient_mismatch" | "invitation_recovery_required" | "membership_removal_recovery_required" | "email_verification_required" | "invalid_workspace_selection" | "organization_context_too_large" | "credential_rate_limited" | "auth_request_rate_limited" | "state_conflict" | "access_denied" | "platform_target_unavailable" | "platform_quorum_unavailable" | "platform_recovery_required" | "identity_authority_unavailable"; type AuthErrorStatus = 400 | 401 | 403 | 404 | 405 | 409 | 413 | 415 | 422 | 429 | 503; declare class AuthError extends Error { readonly code: AuthErrorCode; readonly status: AuthErrorStatus; readonly retryAfterSeconds?: number; constructor(code: AuthErrorCode, status: AuthErrorStatus, retryAfterSeconds?: number); } //#endregion //#region src/types.d.ts interface AuthUser { id: string; name: string; email: string; emailVerified: boolean; image: string | null; } interface AuthSession { id: string; expiresAt: Date; user: AuthUser; } interface AuthOrganization { id: string; name: string; slug: string; logo: string | null; lifecycle: "ordinary" | "managed"; role: "owner" | "admin" | "member"; capabilities: { readMembers: true; readTeams: true; readInvitations: boolean; }; } interface OrganizationDisplay { name: string; slug: string; logo: string | null; } type UpdateOrganizationDisplayInput = OrganizationDisplay; interface OrganizationTeamDisplay { name: string; } type UpdateOrganizationTeamDisplayInput = OrganizationTeamDisplay; interface OrganizationPageInput { limit?: number; cursor?: string; } interface OrganizationPage { organizations: AuthOrganization[]; nextCursor: string | null; } interface OrganizationMember { id: string; userId: string; name: string; email: string; image: string | null; role: "owner" | "admin" | "member"; owner: boolean; joinedAt: Date; teamIds: string[]; } interface OrganizationMemberPage { members: OrganizationMember[]; nextCursor: string | null; } interface OrganizationTeam { id: string; name: string; category: "manual" | "managed"; createdAt: Date; } interface CreatedOrganization { id: string; name: string; slug: string; } interface CreatedOrganizationTeam { id: string; name: string; } interface CreateOrganizationMemberInvitationInput { email: string; teamIds?: string[]; idempotencyKey: string; } interface CreatedOrganizationMemberInvitation { id: string; expiresAt: Date; } interface ResentOrganizationInvitation { id: string; expiresAt: Date; } interface CanceledOrganizationInvitation { status: "canceled"; } interface RemovedOrganizationMember { status: "removed"; } interface OrganizationDeparture { status: "left"; } interface OrganizationTeamPage { teams: OrganizationTeam[]; nextCursor: string | null; } interface OrganizationTeamMemberPage { memberIds: string[]; nextCursor: string | null; } interface OrganizationInvitation { id: string; email: string; role: "owner" | "admin" | "member"; teamIds: string[]; inviter: { membershipId: string; name: string; }; createdAt: Date; expiresAt: Date; status: "pending"; } interface OrganizationInvitationPage { invitations: OrganizationInvitation[]; nextCursor: string | null; } interface ReceivedOrganizationInvitation { id: string; organization: Pick; role: "owner" | "admin" | "member"; teams: Array<{ id: string; name: string; }>; inviterName: string; expiresAt: Date; } interface ReceivedOrganizationInvitationPage { invitations: ReceivedOrganizationInvitation[]; nextCursor: string | null; } interface AcceptInvitationInput { invitationId: string; } interface InvitationAcceptance { organizationId: string; } type AuthState = { status: "loading"; } | { status: "cached"; session: AuthSession; authoritative: false; } | { status: "authenticated"; session: AuthSession; authoritative: true; } | { status: "unauthenticated"; session: null; authoritative: true; } | { status: "unavailable"; session: AuthSession | null; authoritative: false; }; interface AuthPersistenceDriver { getItem(key: string): string | null | Promise; setItem(key: string, value: string): void | Promise; removeItem(key: string): void | Promise; } type AuthPersistence = "local" | "session" | "memory" | AuthPersistenceDriver; interface PersonalWorkspaceSelection { type: "personal"; } interface OrganizationWorkspaceSelection { type: "organization"; organizationId: string; } type WorkspaceSelection = PersonalWorkspaceSelection | OrganizationWorkspaceSelection; interface DriveCredential { tokenType: "Bearer"; token: string; expiresAt: Date; } interface SignInInput { email: string; password: string; } type SocialIdTokenProvider = "google" | "apple"; interface SocialIdTokenInput { provider: SocialIdTokenProvider; idToken: string; nonce?: string; signUp: boolean; } interface UpdateProfileInput { name?: string; image?: string | null; } interface SendVerificationEmailInput { email: string; callbackURL?: string; } interface DriveCredentialInput { workspace: WorkspaceSelection; forceRefresh?: boolean; } type PlatformRole = "administrator" | "investigator"; interface PlatformStatus { eligible: boolean; globalRevision: number; roles: PlatformRole[]; } interface PlatformRoleChangeRecentAuthenticationInput { targetUserId: string; requestedRoles: PlatformRole[]; expectedTargetRevision: number; expectedGlobalRevision: number; reasonCategory: "initial_bootstrap" | "personnel_change" | "privilege_review" | "quorum_recovery" | "security_response"; changeReference: string; idempotencyKey: string; } interface PlatformBootstrapRoleChangeInput extends Omit { requestedRoles: ["administrator"] | ["administrator", "investigator"] | ["investigator", "administrator"]; reasonCategory: "initial_bootstrap"; } interface PlatformRoleFirstApproval { status: "awaiting_second_approval"; targetUserId: string; targetRevision: number; globalRevision: number; roles: []; } interface PlatformRoleApplied { status: "applied"; targetUserId: string; targetRevision: number; globalRevision: number; roles: PlatformRole[]; } type PlatformRoleApproval = PlatformRoleFirstApproval | PlatformRoleApplied; interface RecentAuthenticationStatus { status: "pending" | "ready"; } type OrganizationManualRole = "owner" | "admin" | "member"; interface OrganizationManualRoleChangeInput { requestedManualRole: OrganizationManualRole; expectedActorAuthorityRevision: number; expectedTargetAuthorityRevision: number; idempotencyKey: string; } interface OrganizationManualRoleChangeResult { status: "applied"; memberId: string; manualRole: OrganizationManualRole; role: OrganizationManualRole; authorityRevision: number; } interface OrganizationMemberAuthority { organizationId: string; actor: Omit; target: Omit; } interface OrganizationOwnershipTransferInput { outgoingOwnerMembershipId: string; successorMembershipId: string; outgoingOwnerRole: "admin" | "member"; expectedActorAuthorityRevision: number; expectedOutgoingOwnerAuthorityRevision: number; expectedSuccessorAuthorityRevision: number; idempotencyKey: string; } interface OrganizationOwnershipTransferResult { status: "applied"; outgoingOwner: Omit; successor: Omit; } interface AuthClientOptions { authOrigin: string; appOrigin: string; fetch?: typeof globalThis.fetch; now?: () => number; persistence?: AuthPersistence; timeoutMs?: number; } interface FinuevaAuthClient { readonly _type: "browser"; getPlatformStatus(): Promise; startPlatformRoleChangeRecentAuthentication(input: PlatformRoleChangeRecentAuthenticationInput): Promise; startOrganizationOwnerRoleChangeRecentAuthentication(organizationId: string, targetMembershipId: string, input: OrganizationManualRoleChangeInput): Promise; startOrganizationOwnershipTransferRecentAuthentication(organizationId: string, input: OrganizationOwnershipTransferInput): Promise; approveBootstrapPlatformRoleChange(input: PlatformBootstrapRoleChangeInput): Promise; addPasskey(): Promise; verifyRecentAuthenticationWithPasskey(): Promise; getRecentAuthenticationStatus(): Promise; acceptInvitation(input: AcceptInvitationInput): Promise; getSession(): Promise; listOrganizations(input?: OrganizationPageInput): Promise; getOrganization(organizationId: string): Promise; getOrganizationMemberAuthority(organizationId: string, memberId: string): Promise; createOrganization(name: string, slug: string, idempotencyKey: string): Promise; createOrganizationTeam(organizationId: string, name: string, idempotencyKey: string): Promise; createOrganizationMemberInvitation(organizationId: string, input: CreateOrganizationMemberInvitationInput): Promise; resendOrganizationInvitation(organizationId: string, invitationId: string, idempotencyKey: string): Promise; cancelOrganizationInvitation(organizationId: string, invitationId: string, idempotencyKey: string): Promise; removeOrganizationMember(organizationId: string, memberId: string, idempotencyKey: string): Promise; leaveOrganization(organizationId: string, idempotencyKey: string): Promise; updateOrganizationDisplay(organizationId: string, input: UpdateOrganizationDisplayInput): Promise; updateOrganizationTeamDisplay(organizationId: string, teamId: string, input: UpdateOrganizationTeamDisplayInput): Promise; changeOrganizationMemberManualRole(organizationId: string, targetMembershipId: string, input: OrganizationManualRoleChangeInput): Promise; transferOrganizationOwnership(organizationId: string, input: OrganizationOwnershipTransferInput): Promise; listOrganizationMembers(organizationId: string, input?: OrganizationPageInput): Promise; listOrganizationTeams(organizationId: string, input?: OrganizationPageInput): Promise; listOrganizationTeamMembers(organizationId: string, teamId: string, input?: OrganizationPageInput): Promise; listOrganizationInvitations(organizationId: string, input?: OrganizationPageInput): Promise; getOrganizationInvitation(organizationId: string, invitationId: string): Promise; listReceivedInvitations(input?: OrganizationPageInput): Promise; getReceivedInvitation(invitationId: string): Promise; sendVerificationEmail(input: SendVerificationEmailInput): Promise; signUp(email: string, password: string, name: string): Promise; signIn(input: SignInInput): Promise; signInWithSocialIdToken(input: SocialIdTokenInput): Promise; updateProfile(input: UpdateProfileInput): Promise; changePassword(currentPassword: string, newPassword: string, revokeOtherSessions?: boolean): Promise; requestPasswordReset(email: string, redirectTo: string): Promise; resetPassword(token: string, newPassword: string): Promise; signOut(): Promise; getDriveCredential(input: DriveCredentialInput): Promise; getUserApiCredential(input: UserApiCredentialInput): Promise; onAuthStateChange(listener: (state: AuthState) => void): () => void; onSessionChange(listener: (session: AuthSession | null) => void): () => void; } //#endregion export { AuthError as $, OrganizationTeamPage as A, ReceivedOrganizationInvitation as B, OrganizationMemberAuthority as C, OrganizationTeam as D, OrganizationPageInput as E, PlatformRoleApplied as F, SendVerificationEmailInput as G, RecentAuthenticationStatus as H, PlatformRoleApproval as I, SocialIdTokenProvider as J, SignInInput as K, PlatformRoleChangeRecentAuthenticationInput as L, PersonalWorkspaceSelection as M, PlatformBootstrapRoleChangeInput as N, OrganizationTeamDisplay as O, PlatformRole as P, WorkspaceSelection as Q, PlatformRoleFirstApproval as R, OrganizationMember as S, OrganizationPage as T, RemovedOrganizationMember as U, ReceivedOrganizationInvitationPage as V, ResentOrganizationInvitation as W, UpdateOrganizationTeamDisplayInput as X, UpdateOrganizationDisplayInput as Y, UpdateProfileInput as Z, InvitationAcceptance as _, AuthPersistenceDriver as a, OrganizationInvitation as b, AuthUser as c, CreatedOrganization as d, AuthErrorCode as et, CreatedOrganizationMemberInvitation as f, FinuevaAuthClient as g, DriveCredentialInput as h, AuthPersistence as i, OrganizationWorkspaceSelection as j, OrganizationTeamMemberPage as k, CanceledOrganizationInvitation as l, DriveCredential as m, AuthClientOptions as n, UserApiCredential as nt, AuthSession as o, CreatedOrganizationTeam as p, SocialIdTokenInput as q, AuthOrganization as r, UserApiCredentialInput as rt, AuthState as s, AcceptInvitationInput as t, AuthErrorStatus as tt, CreateOrganizationMemberInvitationInput as u, OrganizationDeparture as v, OrganizationMemberPage as w, OrganizationInvitationPage as x, OrganizationDisplay as y, PlatformStatus as z };