package starling.display {
import starling.core.Starling;
import openfl.geom.Vector3D;
import openfl.geom.Rectangle;
import openfl.geom.Point;
[Event(name="resize",type="starling.events.ResizeEvent")]
/**
 *  Dispatched when the Flash container is resized. 
 * @externs
 */
public class Stage extends starling.display.DisplayObjectContainer {
	/**
	 *  @private 
	 */
	function Stage(width:int, height:int, color:int = undefined) {
		super();
	}
	/**
	 *  @inheritDoc 
	 */
	public function advanceTime(passedTime:Number):void {}
	/**
	 *  Returns the object that is found topmost beneath a point in stage coordinates, or  
	 *      * the stage itself if nothing else is found. 
	 */
	override public function hitTest(localPoint:openfl.geom.Point):starling.display.DisplayObject { return null; }
	/**
	 *  Returns the stage bounds (i.e. not the bounds of its contents, but the rectangle
	 *      *  spawned up by 'stageWidth' and 'stageHeight') in another coordinate system. 
	 */
	public function getStageBounds(targetSpace:starling.display.DisplayObject, out:openfl.geom.Rectangle = undefined):openfl.geom.Rectangle { return null; }
	/**
	 *  Returns the bounds of the screen (or application window, on Desktop) relative to
	 *      *  a certain coordinate system. In most cases, that's identical to the stage bounds;
	 *      *  however, this changes if the viewPort is customized. 
	 */
	public function getScreenBounds(targetSpace:starling.display.DisplayObject, out:openfl.geom.Rectangle = undefined):openfl.geom.Rectangle { return null; }
	/**
	 *  Returns the position of the camera within the local coordinate system of a certain
	 *      * display object. If you do not pass a space, the method returns the global position.
	 *      * To change the position of the camera, you can modify the properties 'fieldOfView',
	 *      * 'focalDistance' and 'projectionOffset'.
	 *      
	 */
	public function getCameraPosition(space:starling.display.DisplayObject = undefined, out:openfl.geom.Vector3D = undefined):openfl.geom.Vector3D { return null; }
	/**
	 *  The background color of the stage. 
	 */
	public function get color():int { return 0; }
	public function set color(value:int):void {}
	/**
	 *  The width of the stage coordinate system. Change it to scale its contents relative
	 *      * to the <code>viewPort</code> property of the Starling object. 
	 */
	public function get stageWidth():int { return 0; }
	public function set stageWidth(value:int):void {}
	/**
	 *  The height of the stage coordinate system. Change it to scale its contents relative
	 *      * to the <code>viewPort</code> property of the Starling object. 
	 */
	public function get stageHeight():int { return 0; }
	public function set stageHeight(value:int):void {}
	/**
	 *  The Starling instance this stage belongs to. 
	 */
	public function get starling():starling.core.Starling { return null; }
	/**
	 *  The distance between the stage and the camera. Changing this value will update the
	 *      * field of view accordingly. 
	 */
	public function get focalLength():Number { return 0; }
	public function set focalLength(value:Number):void {}
	/**
	 *  Specifies an angle (radian, between zero and PI) for the field of view. This value
	 *      * determines how strong the perspective transformation and distortion apply to a Sprite3D
	 *      * object.
	 *      *
	 *      * <p>A value close to zero will look similar to an orthographic projection; a value
	 *      * close to PI results in a fisheye lens effect. If the field of view is set to 0 or PI,
	 *      * nothing is seen on the screen.</p>
	 *      *
	 *      * @default 1.0
	 *      
	 */
	public function get fieldOfView():Number { return 0; }
	public function set fieldOfView(value:Number):void {}
	/**
	 *  A vector that moves the camera away from its default position in the center of the
	 *      * stage. Use this property to change the center of projection, i.e. the vanishing
	 *      * point for 3D display objects. <p>CAUTION: not a copy, but the actual object!</p>
	 *      
	 */
	public function get projectionOffset():openfl.geom.Point { return null; }
	public function set projectionOffset(value:openfl.geom.Point):void {}
	/**
	 *  The global position of the camera. This property can only be used to find out the
	 *      * current position, but not to modify it. For that, use the 'projectionOffset',
	 *      * 'fieldOfView' and 'focalLength' properties. If you need the camera position in
	 *      * a certain coordinate space, use 'getCameraPosition' instead.
	 *      *
	 *      * <p>CAUTION: not a copy, but the actual object!</p>
	 *      
	 */
	public function get cameraPosition():openfl.geom.Vector3D { return null; }
}
}
