import { Result } from "@adviser/cement"; import { DashAuthType } from "./msg-types.js"; export interface TypeString { readonly type: string; } export interface WithType { readonly type: T["type"]; readonly auth?: DashAuthType; } export type WithoutTypeAndAuth = Omit; export interface ClerkDashboardApiConfig { readonly apiUrl: string; readonly getTokenCtx?: T; readonly template?: string; readonly gracePeriodMs?: number; fetch?(input: RequestInfo, init?: RequestInit): Promise; } export interface DashboardApiConfigIntern { readonly apiUrl: string; readonly getTokenCtx?: T; readonly gracePeriodMs: number; fetch(input: RequestInfo, init?: RequestInit): Promise; getToken: (ctx?: T) => Promise>; } export interface DashboardApiConfig extends Omit, "gracePeriodMs"> { readonly gracePeriodMs?: number; }