declare namespace openfl.ui {
	
	
	/**
	 * The Keyboard class is used to build an interface that can be controlled by
	 * a user with a standard keyboard. You can use the methods and properties of
	 * the Keyboard class without using a constructor. The properties of the
	 * Keyboard class are constants representing the keys that are most commonly
	 * used to control games.
	 */
	/*@:final*/ export class Keyboard {
		
		// TODO: Add additional Flash values
		
		
		/**
		 * Constant associated with the key code value for the 0 key(48).
		 */
		public static NUMBER_0:number;
		
		/**
		 * Constant associated with the key code value for the 1 key(49).
		 */
		public static NUMBER_1:number;
		
		/**
		 * Constant associated with the key code value for the 2 key(50).
		 */
		public static NUMBER_2:number;
		
		/**
		 * Constant associated with the key code value for the 3 key(51).
		 */
		public static NUMBER_3:number;
		
		/**
		 * Constant associated with the key code value for the 4 key(52).
		 */
		public static NUMBER_4:number;
		
		/**
		 * Constant associated with the key code value for the 5 key(53).
		 */
		public static NUMBER_5:number;
		
		/**
		 * Constant associated with the key code value for the 6 key(54).
		 */
		public static NUMBER_6:number;
		
		/**
		 * Constant associated with the key code value for the 7 key(55).
		 */
		public static NUMBER_7:number;
		
		/**
		 * Constant associated with the key code value for the 8 key(56).
		 */
		public static NUMBER_8:number; 
		
		/**
		 * Constant associated with the key code value for the 9 key(57).
		 */
		public static NUMBER_9:number;
		
		/**
		 * Constant associated with the key code value for the A key(65).
		 */
		public static A:number;
		
		/**
		 * Constant associated with the key code value for the B key(66).
		 */
		public static B:number;
		
		/**
		 * Constant associated with the key code value for the C key(67).
		 */
		public static C:number;
		
		/**
		 * Constant associated with the key code value for the D key(68).
		 */
		public static D:number;
		
		/**
		 * Constant associated with the key code value for the E key(69).
		 */
		public static E:number;
		
		/**
		 * Constant associated with the key code value for the F key(70).
		 */
		public static F:number;
		
		/**
		 * Constant associated with the key code value for the G key(71).
		 */
		public static G:number;
		
		/**
		 * Constant associated with the key code value for the H key(72).
		 */
		public static H:number;
		
		/**
		 * Constant associated with the key code value for the I key(73).
		 */
		public static I:number;
		
		/**
		 * Constant associated with the key code value for the J key(74).
		 */
		public static J:number;
		
		/**
		 * Constant associated with the key code value for the K key(75).
		 */
		public static K:number;
		
		/**
		 * Constant associated with the key code value for the L key(76).
		 */
		public static L:number;
		
		/**
		 * Constant associated with the key code value for the M key(77).
		 */
		public static M:number;
		
		/**
		 * Constant associated with the key code value for the N key(78).
		 */
		public static N:number;
		
		/**
		 * Constant associated with the key code value for the O key(79).
		 */
		public static O:number;
		
		/**
		 * Constant associated with the key code value for the P key(80).
		 */
		public static P:number;
		
		/**
		 * Constant associated with the key code value for the Q key(81).
		 */
		public static Q:number;
		
		/**
		 * Constant associated with the key code value for the R key(82).
		 */
		public static R:number;
		
		/**
		 * Constant associated with the key code value for the S key(83).
		 */
		public static S:number;
		
		/**
		 * Constant associated with the key code value for the T key(84).
		 */
		public static T:number;
		
		/**
		 * Constant associated with the key code value for the U key(85).
		 */
		public static U:number;
		
		/**
		 * Constant associated with the key code value for the V key(85).
		 */
		public static V:number;
		
		/**
		 * Constant associated with the key code value for the W key(87).
		 */
		public static W:number;
		
		/**
		 * Constant associated with the key code value for the X key(88).
		 */
		public static X:number;
		
		/**
		 * Constant associated with the key code value for the Y key(89).
		 */
		public static Y:number;
		
		/**
		 * Constant associated with the key code value for the Z key(90).
		 */
		public static Z:number;
		
		/**
		 * Constant associated with the key code value for the number 0 key on the
		 * number pad(96).
		 */
		public static NUMPAD_0:number;
		
		/**
		 * Constant associated with the key code value for the number 1 key on the
		 * number pad(97).
		 */
		public static NUMPAD_1:number;
		
		/**
		 * Constant associated with the key code value for the number 2 key on the
		 * number pad(98).
		 */
		public static NUMPAD_2:number;
		
		/**
		 * Constant associated with the key code value for the number 3 key on the
		 * number pad(99).
		 */
		public static NUMPAD_3:number;
		
		/**
		 * Constant associated with the key code value for the number 4 key on the
		 * number pad(100).
		 */
		public static NUMPAD_4:number;
		
		/**
		 * Constant associated with the key code value for the number 5 key on the
		 * number pad(101).
		 */
		public static NUMPAD_5:number;
		
		/**
		 * Constant associated with the key code value for the number 6 key on the
		 * number pad(102).
		 */
		public static NUMPAD_6:number;
		
		/**
		 * Constant associated with the key code value for the number 7 key on the
		 * number pad(103).
		 */
		public static NUMPAD_7:number;
		
		/**
		 * Constant associated with the key code value for the number 8 key on the
		 * number pad(104).
		 */
		public static NUMPAD_8:number;
		
		/**
		 * Constant associated with the key code value for the number 9 key on the
		 * number pad(105).
		 */
		public static NUMPAD_9:number;
		
		/**
		 * Constant associated with the key code value for the multiplication key on
		 * the number pad(106).
		 */
		public static NUMPAD_MULTIPLY:number;
		
		/**
		 * Constant associated with the key code value for the addition key on the
		 * number pad(107).
		 */
		public static NUMPAD_ADD:number;
		
		/**
		 * Constant associated with the key code value for the Enter key on the
		 * number pad(108).
		 */
		public static NUMPAD_ENTER:number;
		
		/**
		 * Constant associated with the key code value for the subtraction key on the
		 * number pad(109).
		 */
		public static NUMPAD_SUBTRACT:number;
		
		/**
		 * Constant associated with the key code value for the decimal key on the
		 * number pad(110).
		 */
		public static NUMPAD_DECIMAL:number;
		
		/**
		 * Constant associated with the key code value for the division key on the
		 * number pad(111).
		 */
		public static NUMPAD_DIVIDE:number;
		
		/**
		 * Constant associated with the key code value for the F1 key(112).
		 */
		public static F1:number;
		
		/**
		 * Constant associated with the key code value for the F2 key(113).
		 */
		public static F2:number;
		
		/**
		 * Constant associated with the key code value for the F3 key(114).
		 */
		public static F3:number;
		
		/**
		 * Constant associated with the key code value for the F4 key(115).
		 */
		public static F4:number;
		
		/**
		 * Constant associated with the key code value for the F5 key(116).
		 */
		public static F5:number;
		
		/**
		 * Constant associated with the key code value for the F6 key(117).
		 */
		public static F6:number;
		
		/**
		 * Constant associated with the key code value for the F7 key(118).
		 */
		public static F7:number;
		
		/**
		 * Constant associated with the key code value for the F8 key(119).
		 */
		public static F8:number;
		
		/**
		 * Constant associated with the key code value for the F9 key(120).
		 */
		public static F9:number;
		
		/**
		 * Constant associated with the key code value for the F10 key(121).
		 */
		public static F10:number; //  F10 is used by browser.
		
		/**
		 * Constant associated with the key code value for the F11 key(122).
		 */
		public static F11:number;
		
		/**
		 * Constant associated with the key code value for the F12 key(123).
		 */
		public static F12:number;
		
		/**
		 * Constant associated with the key code value for the F13 key(124).
		 */
		public static F13:number;
		
		/**
		 * Constant associated with the key code value for the F14 key(125).
		 */
		public static F14:number;
		
		/**
		 * Constant associated with the key code value for the F15 key(126).
		 */
		public static F15:number;
		
		/**
		 * Constant associated with the key code value for the Backspace key(8).
		 */
		public static BACKSPACE:number;
		
		/**
		 * Constant associated with the key code value for the Tab key(9).
		 */
		public static TAB:number;
		
		/**
		 * Constant associated with the key code value for the Alternate(Option) key
		 * (18).
		 */
		public static ALTERNATE:number;
		
		/**
		 * Constant associated with the key code value for the Enter key(13).
		 */
		public static ENTER:number;
		
		/**
		 * Constant associated with the Mac command key(15). This constant is
		 * currently only used for setting menu key equivalents.
		 */
		public static COMMAND:number;
		
		/**
		 * Constant associated with the key code value for the Shift key(16).
		 */
		public static SHIFT:number;
		
		/**
		 * Constant associated with the key code value for the Control key(17).
		 */
		public static CONTROL:number;
		
		public static BREAK:number;
		
		/**
		 * Constant associated with the key code value for the Caps Lock key(20).
		 */
		public static CAPS_LOCK:number;
		
		/**
		 * Constant associated with the pseudo-key code for the the number pad(21).
		 * Use to set numpad modifier on key equivalents
		 */
		public static NUMPAD:number;
		
		/**
		 * Constant associated with the key code value for the Escape key(27).
		 */
		public static ESCAPE:number;
		
		/**
		 * Constant associated with the key code value for the Spacebar(32).
		 */
		public static SPACE:number;
		
		/**
		 * Constant associated with the key code value for the Page Up key(33).
		 */
		public static PAGE_UP:number;
		
		/**
		 * Constant associated with the key code value for the Page Down key(34).
		 */
		public static PAGE_DOWN:number;
		
		/**
		 * Constant associated with the key code value for the End key(35).
		 */
		public static END:number;
		
		/**
		 * Constant associated with the key code value for the Home key(36).
		 */
		public static HOME:number;
		
		/**
		 * Constant associated with the key code value for the Left Arrow key(37).
		 */
		public static LEFT:number;
		
		/**
		 * Constant associated with the key code value for the Right Arrow key(39).
		 */
		public static RIGHT:number;
		
		/**
		 * Constant associated with the key code value for the Up Arrow key(38).
		 */
		public static UP:number;
		
		/**
		 * Constant associated with the key code value for the Down Arrow key(40).
		 */
		public static DOWN:number;
		
		/**
		 * Constant associated with the key code value for the Insert key(45).
		 */
		public static INSERT:number;
		
		/**
		 * Constant associated with the key code value for the Delete key(46).
		 */
		public static DELETE:number;
		
		public static NUMLOCK:number;
		
		/**
		 * Constant associated with the key code value for the ; key(186).
		 */
		public static SEMICOLON:number;
		
		/**
		 * Constant associated with the key code value for the = key(187).
		 */
		public static EQUAL:number;
		
		/**
		 * Constant associated with the key code value for the , key(188).
		 */
		public static COMMA:number;
		
		/**
		 * Constant associated with the key code value for the - key(189).
		 */
		public static MINUS:number;
		
		/**
		 * Constant associated with the key code value for the . key(190).
		 */
		public static PERIOD:number;
		
		/**
		 * Constant associated with the key code value for the / key(191).
		 */
		public static SLASH:number;
		
		/**
		 * Constant associated with the key code value for the ` key(192).
		 */
		public static BACKQUOTE:number;
		
		/**
		 * Constant associated with the key code value for the [ key(219).
		 */
		public static LEFTBRACKET:number;
		
		/**
		 * Constant associated with the key code value for the \ key(220).
		 */
		public static BACKSLASH:number;
		
		/**
		 * Constant associated with the key code value for the ] key(221).
		 */
		public static RIGHTBRACKET:number;
		
		/**
		 * Constant associated with the key code value for the ' key(222).
		 */
		public static QUOTE:number;
		
		// #if air
		// public static NEXT = 0x0100000E;
		// public static BACK = 0x01000016;
		// public static SEARCH = 0x0100001F;
		// public static MENU = 0x01000012;
		// #end
		
		/**
		 * Specifies whether the Caps Lock key is activated(`true`) or
		 * not(`false`).
		 */
		public static readonly capsLock:boolean;
		
		/**
		 * Specifies whether the Num Lock key is activated(`true`) or not
		 * (`false`).
		 */
		public static readonly numLock:boolean;
		
		
		/**
		 * Specifies whether the last key pressed is accessible by other SWF files.
		 * By default, security restrictions prevent code from a SWF file in one
		 * domain from accessing a keystroke generated from a SWF file in another
		 * domain.
		 * 
		 * @return The value `true` if the last key pressed can be
		 *         accessed. If access is not permitted, this method returns
		 *         `false`.
		 */
		public static isAccessible ():boolean;
		
		
	}
	
	
}


export default openfl.ui.Keyboard;