import { Result } from "@adviser/cement"; import { DashAuthType, User } from "./msg-types.js"; import { ClerkClaim } from "@fireproof/core-types-base"; export interface TokenByResultIdParam { readonly status: "found" | "not-found"; readonly resultId: string; readonly token?: string; readonly now: Date; } export interface FPApiToken { verify(token: string): Promise>; decode(token: string): Promise>; } export interface WithAuth { readonly auth: DashAuthType; } export interface VerifiedClaimsResult { readonly type: DashAuthType["type"]; readonly token: string; readonly claims: unknown; } export interface ClerkVerifiedAuth { readonly type: "clerk"; readonly claims: ClerkClaim; } export interface VerifiedAuthResult { readonly type: "VerifiedAuthResult"; readonly inDashAuth: DashAuthType; readonly verifiedAuth: ClerkVerifiedAuth; } export interface VerifiedAuthUserResult extends Omit { readonly type: "VerifiedAuthUserResult"; readonly user: User; } export type VerifiedResult = VerifiedAuthResult | VerifiedAuthUserResult; export declare function isVerifiedAuth(obj: VerifiedResult): obj is VerifiedAuthResult; export declare function isVerifiedAuthUser(obj: VerifiedResult): obj is VerifiedAuthUserResult;