package openfl.display {
[Exclude(name="exec",kind="method")]
/**
 * 	The Application class is a Lime Application instance that uses
 * 	OpenFL Window by default when a new window is created.
 * 
 * @externs
 */
public class Application {
	public function Application() {}
	/**
	 * 		The device's orientation.
	 * 	
	 */
	public function get deviceOrientation():int { return 0; }
	/**
	 * 		Meta-data values for the application, such as a version or a package name
	 * 	
	 */
	public var meta:*;
	/**
	 * 		A list of currently attached Module instances
	 * 	
	 */
	public var modules:Array;
	/**
	 * 		Update events are dispatched each frame (usually just before rendering)
	 * 	
	 */
	public var onUpdate:*;
	/**
	 * 		Dispatched when a new window has been created by this application
	 * 	
	 */
	public var onCreateWindow:*;
	/**
	 * 		Dispatched when the orientation of the display has changed.
	 * 	
	 */
	public var onDisplayOrientationChange:*;
	/**
	 * 		Dispatched when the orientation of the device has changed. Typically,
	 * 		the display and device orientation values are the same. However, if the
	 * 		display orientation is locked to portrait or landscape, the display and
	 * 		device orientations may be different.
	 * 	
	 */
	public var onDeviceOrientationChange:*;
	/**
	 * 		The Preloader for the current Application
	 * 	
	 */
	public function get preloader():* { return null; }
	/**
	 * 		The Window associated with this Application, or the first Window
	 * 		if there are multiple Windows active
	 * 	
	 */
	public function get window():* { return null; }
	/**
	 * 		A list of active Window instances associated with this Application
	 * 	
	 */
	public function get windows():Array { return null; }
	/**
	 * 		Adds a new module to the Application
	 * 		@param	module	A module to add
	 * 	
	 */
	public function addModule(module:*):void {}
	/**
	 * 		Called when a gamepad axis move event is fired
	 * 		@param	gamepad	The current gamepad
	 * 		@param	axis	The axis that was moved
	 * 		@param	value	The axis value (between 0 and 1)
	 * 	
	 */
	public function onGamepadAxisMove(gamepad:*, axis:int, value:Number):void {}
	/**
	 * 		Called when a gamepad button down event is fired
	 * 		@param	gamepad	The current gamepad
	 * 		@param	button	The button that was pressed
	 * 	
	 */
	public function onGamepadButtonDown(gamepad:*, button:int):void {}
	/**
	 * 		Called when a gamepad button up event is fired
	 * 		@param	gamepad	The current gamepad
	 * 		@param	button	The button that was released
	 * 	
	 */
	public function onGamepadButtonUp(gamepad:*, button:int):void {}
	/**
	 * 		Called when a gamepad is connected
	 * 		@param	gamepad	The gamepad that was connected
	 * 	
	 */
	public function onGamepadConnect(gamepad:*):void {}
	/**
	 * 		Called when a gamepad is disconnected
	 * 		@param	gamepad	The gamepad that was disconnected
	 * 	
	 */
	public function onGamepadDisconnect(gamepad:*):void {}
	/**
	 * 		Called when a joystick axis move event is fired
	 * 		@param	joystick	The current joystick
	 * 		@param	axis	The axis that was moved
	 * 		@param	value	The axis value (between 0 and 1)
	 * 	
	 */
	public function onJoystickAxisMove(joystick:*, axis:int, value:Number):void {}
	/**
	 * 		Called when a joystick button down event is fired
	 * 		@param	joystick	The current joystick
	 * 		@param	button	The button that was pressed
	 * 	
	 */
	public function onJoystickButtonDown(joystick:*, button:int):void {}
	/**
	 * 		Called when a joystick button up event is fired
	 * 		@param	joystick	The current joystick
	 * 		@param	button	The button that was released
	 * 	
	 */
	public function onJoystickButtonUp(joystick:*, button:int):void {}
	/**
	 * 		Called when a joystick is connected
	 * 		@param	joystick	The joystick that was connected
	 * 	
	 */
	public function onJoystickConnect(joystick:*):void {}
	/**
	 * 		Called when a joystick is disconnected
	 * 		@param	joystick	The joystick that was disconnected
	 * 	
	 */
	public function onJoystickDisconnect(joystick:*):void {}
	/**
	 * 		Called when a joystick hat move event is fired
	 * 		@param	joystick	The current joystick
	 * 		@param	hat	The hat that was moved
	 * 		@param	position	The current hat position
	 * 	
	 */
	public function onJoystickHatMove(joystick:*, hat:int, position:int):void {}
	/**
	 * 		Called when a key down event is fired on the primary window
	 * 		@param	keyCode	The code of the key that was pressed
	 * 		@param	modifier	The modifier of the key that was pressed
	 * 	
	 */
	public function onKeyDown(keyCode:int, modifier:int):void {}
	/**
	 * 		Called when a key up event is fired on the primary window
	 * 		@param	keyCode	The code of the key that was released
	 * 		@param	modifier	The modifier of the key that was released
	 * 	
	 */
	public function onKeyUp(keyCode:int, modifier:int):void {}
	/**
	 * 		Called when the module is exiting
	 * 	
	 */
	public function onModuleExit(code:int):void {}
	/**
	 * 		Called when a mouse down event is fired on the primary window
	 * 		@param	x	The current x coordinate of the mouse
	 * 		@param	y	The current y coordinate of the mouse
	 * 		@param	button	The ID of the mouse button that was pressed
	 * 	
	 */
	public function onMouseDown(x:Number, y:Number, button:int):void {}
	/**
	 * 		Called when a mouse move event is fired on the primary window
	 * 		@param	x	The current x coordinate of the mouse
	 * 		@param	y	The current y coordinate of the mouse
	 * 	
	 */
	public function onMouseMove(x:Number, y:Number):void {}
	/**
	 * 		Called when a mouse move relative event is fired on the primary window
	 * 		@param	x	The x movement of the mouse
	 * 		@param	y	The y movement of the mouse
	 * 	
	 */
	public function onMouseMoveRelative(x:Number, y:Number):void {}
	/**
	 * 		Called when a mouse up event is fired on the primary window
	 * 		@param	x	The current x coordinate of the mouse
	 * 		@param	y	The current y coordinate of the mouse
	 * 		@param	button	The ID of the button that was released
	 * 	
	 */
	public function onMouseUp(x:Number, y:Number, button:int):void {}
	/**
	 * 		Called when a mouse wheel event is fired on the primary window
	 * 		@param	deltaX	The amount of horizontal scrolling (if applicable)
	 * 		@param	deltaY	The amount of vertical scrolling (if applicable)
	 * 		@param	deltaMode	The units of measurement used
	 * 	
	 */
	public function onMouseWheel(deltaX:Number, deltaY:Number, deltaMode:*):void {}
	/**
	 * 		Called when a preload complete event is fired
	 * 	
	 */
	public function onPreloadComplete():void {}
	/**
	 * 		Called when a preload progress event is fired
	 * 		@param	loaded	The number of items that are loaded
	 * 		@param	total	The total number of items will be loaded
	 * 	
	 */
	public function onPreloadProgress(loaded:int, total:int):void {}
	/**
	 * 		Called when a render context is lost on the primary window
	 * 	
	 */
	public function onRenderContextLost():void {}
	/**
	 * 		Called when a render context is restored on the primary window
	 * 		@param	context	The render context relevant to the event
	 * 	
	 */
	public function onRenderContextRestored(context:*):void {}
	/**
	 * 		Called when a text edit event is fired on the primary window
	 * 		@param	text	The current replacement text
	 * 		@param	start	The starting index for the edit
	 * 		@param	length	The length of the edit
	 * 	
	 */
	public function onTextEdit(text:String, start:int, length:int):void {}
	/**
	 * 		Called when a text input event is fired on the primary window
	 * 		@param	text	The current input text
	 * 	
	 */
	public function onTextInput(text:String):void {}
	/**
	 * 		Called when a touch cancel event is fired
	 * 		@param	touch	The current touch object
	 * 	
	 */
	public function onTouchCancel(touch:*):void {}
	/**
	 * 		Called when a touch end event is fired
	 * 		@param	touch	The current touch object
	 * 	
	 */
	public function onTouchEnd(touch:*):void {}
	/**
	 * 		Called when a touch move event is fired
	 * 		@param	touch	The current touch object
	 * 	
	 */
	public function onTouchMove(touch:*):void {}
	/**
	 * 		Called when a touch start event is fired
	 * 		@param	touch	The current touch object
	 * 	
	 */
	public function onTouchStart(touch:*):void {}
	/**
	 * 		Called when a window activate event is fired on the primary window
	 * 	
	 */
	public function onWindowActivate():void {}
	/**
	 * 		Called when a window close event is fired on the primary window
	 * 	
	 */
	public function onWindowClose():void {}
	/**
	 * 		Called when the primary window is created
	 * 	
	 */
	public function onWindowCreate():void {}
	/**
	 * 		Called when a window deactivate event is fired on the primary window
	 * 	
	 */
	public function onWindowDeactivate():void {}
	/**
	 * 		Called when a window drop file event is fired on the primary window
	 * 	
	 */
	public function onWindowDropFile(file:String):void {}
	/**
	 * 		Called when a window enter event is fired on the primary window
	 * 	
	 */
	public function onWindowEnter():void {}
	/**
	 * 		Called when a window expose event is fired on the primary window
	 * 	
	 */
	public function onWindowExpose():void {}
	/**
	 * 		Called when a window focus in event is fired on the primary window
	 * 	
	 */
	public function onWindowFocusIn():void {}
	/**
	 * 		Called when a window focus out event is fired on the primary window
	 * 	
	 */
	public function onWindowFocusOut():void {}
	/**
	 * 		Called when the primary window enters fullscreen
	 * 	
	 */
	public function onWindowFullscreen():void {}
	/**
	 * 		Called when a window leave event is fired on the primary window
	 * 	
	 */
	public function onWindowLeave():void {}
	/**
	 * 		Called when a window move event is fired on the primary window
	 * 		@param	x	The x position of the window in desktop coordinates
	 * 		@param	y	The y position of the window in desktop coordinates
	 * 	
	 */
	public function onWindowMove(x:Number, y:Number):void {}
	/**
	 * 		Called when the primary window is minimized
	 * 	
	 */
	public function onWindowMinimize():void {}
	/**
	 * 		Called when a window resize event is fired on the primary window
	 * 		@param	width	The width of the window
	 * 		@param	height	The height of the window
	 * 	
	 */
	public function onWindowResize(width:int, height:int):void {}
	/**
	 * 		Called when the primary window is restored from being minimized or fullscreen
	 * 	
	 */
	public function onWindowRestore():void {}
	/**
	 * 		Removes a module from the Application
	 * 		@param	module	A module to remove
	 * 	
	 */
	public function removeModule(module:*):void {}
	/**
	 * 		Called when a render event is fired on the primary window
	 * 		@param	context	The render context ready to be rendered
	 * 	
	 */
	public function render(context:*):void {}
	/**
	 * 		Called when an update event is fired on the primary window
	 * 		@param	deltaTime	The amount of time in milliseconds that has elapsed since the last update
	 * 	
	 */
	public function update(deltaTime:int):void {}
	/**
	 * 		Exit events are dispatched when the application is exiting
	 * 	
	 */
	public var onExit:*;
	public function createWindow(attributes:Object):openfl.display.Window { return null; }
	public function exec():int { return 0; }
}
}
