export interface Cost { wood: number; stone: number; iron: number; food: number; } export type Production = Cost; export interface BuildingSource { name: string; cost: (level: number) => Cost; behavior: { production?: Function; storage?: Function; }; } export interface Building extends BuildingSource { id: number; level: number; }