Files
kycnotme/web/src/env.d.ts
2025-06-11 17:05:58 +00:00

47 lines
1.3 KiB
TypeScript

/* eslint-disable @typescript-eslint/consistent-type-definitions */
import type { ErrorBanners } from './lib/errorBanners'
import type { KarmaUnlocks } from './lib/karmaUnlocks'
import type { Prisma } from '@prisma/client'
import type * as htmx from 'htmx.org'
declare global {
namespace App {
interface Locals {
user: (Prisma.UserGetPayload<true> & { karmaUnlocks: KarmaUnlocks }) | null
actualUser: (Prisma.UserGetPayload<true> & { karmaUnlocks: KarmaUnlocks }) | null
banners: ErrorBanners
makeId: <T extends string>(prefix: T) => `${T}-${number}-${string}`
}
}
interface Window {
htmx?: typeof htmx
__SW_REGISTRATION__?: ServiceWorkerRegistration
}
namespace PrismaJson {
type TosReview = {
kycLevel: 0 | 1 | 2 | 3 | 4
/** Less than 200 characters */
summary: MarkdownString
contentHash: string
complexity: 'high' | 'low' | 'medium'
highlights: {
/** Very short */
title: string
/** Short */
content: MarkdownString
rating: 'negative' | 'neutral' | 'positive'
}[]
}
type UserSentiment = {
summary: MarkdownString
sentiment: 'negative' | 'neutral' | 'positive'
whatUsersLike: string[]
whatUsersDislike: string[]
}
}
}