declare namespace FG { interface Session { expires: Date; token: string; lifetime: number; browser: string; platform: string; userid: string; } interface User { userid: string; display_name: string; firstname: string; lastname: string; mail: string; birthday?: Date; roles: Array; permissions?: Array; avatar_url?: 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 Drink { id: number; article_id?: string; package_size?: number; name: string; volume?: number; cost_price_pro_volume?: number; cost_price_package_netto?: number; tags?: Array; type?: DrinkType; volumes: Array; } interface DrinkIngredient { id: number; volume: number; drink_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; } interface Event { id: number; start: Date; end?: Date; description?: string; type: EventType | number; jobs: Array; } interface EventType { id: number; name: 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; value: number; } }