declare module Settings{ interface Global{ project: Project frameWork: FrameWork game: Game } interface Project{ name: string author: string playerCounts: number[] online: Online } interface Online{ iceServers: ICEServer[] } interface ICEServer{ url: string username: string credential: string } interface FrameWork{ frameRate: number updateRate: number width: number height: number } interface Game{ ball: Ball player: Player item: { wormhole: Wormhole boost: Boost newBall: NewBall } } interface Ball{ radius: number velocity: Ball.Velocity acceleration: Ball.Acceleration runUp: Ball.RunUp color: Color safeRadius: number } interface Player{ length: number depth: number margin: number points: number absVel: number color: Color thisStroke: string moveMargin: number blinkTime: number } interface Item{ radius: number spawnTime: number color: Color duration: number fadeTime: number } interface Boost extends Item{ types: string[] effect: { [effect: string]: Effect } } interface Wormhole extends Item{ power: number minRadius: number maxRadius: number } interface NewBall extends Item{ } interface Color{ stroke: string fill: string } interface Effect{ duration: number positive: { [key: string]: number } negative: { [key: string]: number } standard : { [key: string]: number } } interface Vector{ x: number y: number } interface TimeProcess{ max: number now: number } module Ball{ interface RunUp{ min: number max: number } interface Velocity{ start: number min: number runUpMax: number resetMultiplier: number } interface Acceleration{ permanent: number max: number } } }