import type { Invalidator, Subscriber, Unsubscriber, Updater } from "svelte/store"; export interface Preference { id: number; color: string; size_id: number; user_id: number; } export interface Size { size: number; unit: string; } export interface User { id: number; name: string; uuid: string; } export interface Statistic { user_id: number; date: string; quantity: number; } export type Nullable = T | null; export interface User { uuid: string; username: string; } export interface TokenStore { subscribe: (run: Subscriber>, invalidate?: Invalidator>) => Unsubscriber, authenticate: (newToken: string) => void, unauthenticate: () => void } export interface UserStore { subscribe: (run: Subscriber>, invalidate?: Invalidator>) => Unsubscriber, setUser: (user: User) => void, reset: () => void } export interface PreferenceStore { set: (this: void, value: Preference) => void; subscribe: (this: void, run: Subscriber>, invalidate?: Invalidator>) => Unsubscriber; reset: () => void; update: (this: void, updater: Updater>) => void; setPreference: (user: Preference) => void; }