import type { AvatarProps } from '@nuxt/ui' export type UserStatus = 'subscribed' | 'unsubscribed' | 'bounced' export type SaleStatus = 'paid' | 'failed' | 'refunded' export interface User { id: number name: string email: string avatar?: AvatarProps status: UserStatus location: string } export interface SearchFiles { youtube?: string video?: string audio?: string booklet?: string simple?: string } export interface MatchPosition { start: number, length: number } export interface SearchHit { _id: string | number id?: string | number title: string slug?: string date?: number | string isodate?: string activity?: string conference?: string place?: string city?: string state?: string country?: string body?: string thumbnail?: string type?: string files?: SearchFiles unread?: boolean _formatted?: Record _matchesPosition?: Record [key: string]: unknown } // Backwards-compatible alias used by InboxList / InboxActivity export type Activity = SearchHit export interface Member { name: string username: string role: 'member' | 'owner' avatar: AvatarProps } export interface Notification { id: number unread?: boolean sender: User body: string date: string }