declare namespace FG { interface Notification { id: number; plugin: string; text: string; data?: unknown; time: Date; } interface User { userid: string; display_name: string; firstname: string; lastname: string; mail: string; birthday?: Date; roles: Array; permissions?: Array; avatar_url?: string; } interface Session { expires: Date; token: string; lifetime: number; browser: string; platform: string; userid: string; } type Permission = string; interface Role { id: number; name: string; permissions: Array; } interface Transaction { id: number; time: Date; amount: number; reversal_id?: number; author_id?: string; sender_id?: string; original_id?: number; receiver_id?: string; } interface Event { id: number; start: Date; end?: Date; name?: string; description?: string; type: EventType | number; is_template: boolean; jobs: Array; } interface EventType { id: number; name: string; } interface Invite { id: number; job_id: number; invitee_id: string; sender_id: string; } interface Job { id: number; start: Date; end?: Date; type: JobType | number; comment?: string; services: Array; required_services: number; } interface JobType { id: number; name: string; } interface Service { userid: string; is_backup: boolean; value: number; } interface Drink { id: number; article_id?: string; package_size?: number; name: string; volume?: number; cost_per_volume?: number; cost_per_package?: number; tags?: Array; type?: DrinkType; volumes: Array; uuid: string; receipt?: Array; } interface DrinkIngredient { id: number; volume: number; ingredient_id: number; } interface DrinkPrice { id: number; price: number; public: boolean; description?: string; } interface DrinkPriceVolume { id: number; volume: number; min_prices: Array; prices: Array; ingredients: Array; } interface DrinkType { id: number; name: string; } interface ExtraIngredient { id: number; name: string; price: number; } interface Ingredient { id: number; drink_ingredient?: DrinkIngredient; extra_ingredient?: ExtraIngredient; } interface MinPrices { percentage: number; price: number; } interface Tag { id: number; name: string; color: string; } }