import type {
  CoreServices,
  CoreSingletonServices,
  CoreConfig,
  CoreUserSession,
  ContentService,
} from "@pikku/core"
import type { Kysely } from "kysely"
import type { BrowserService } from "@pikku/browser"
import type { DB } from "./types/db.types.js"
import type { AuditService } from "./services/audit.service.js"

export interface UserSession extends CoreUserSession {
  userId: string
  email: string
  displayName: string
}

export interface Config extends CoreConfig {}

export interface SingletonServices extends CoreSingletonServices<Config> {
  kysely: Kysely<DB>
  content: ContentService
  browser: BrowserService
}

export interface Services extends CoreServices<SingletonServices> {
  audit: AuditService
}
