diff --git a/README.md b/README.md
index 3472f264b8..424351acb6 100755
--- a/README.md
+++ b/README.md
@@ -40,6 +40,7 @@ List of Definitions
* [asciify](https://github.com/olizilla/asciify) (by [Alan](http://alan.norbauer.com))
* [assert](https://github.com/Jxck/assert) (by [vvakame](https://github.com/vvakame))
* [async](https://github.com/caolan/async) (by [Boris Yankov](https://github.com/borisyankov))
+* [Atom](https://atom.io/) (by [vvakame](https://github.com/vvakame))
* [Backbone.js](http://backbonejs.org/) (by [Boris Yankov](https://github.com/borisyankov))
* [Backbone Relational](http://backbonerelational.org/) (by [Eirik Hoem](https://github.com/eirikhm))
* [BigScreen](http://brad.is/coding/BigScreen/) (by [Douglas Eichelberger](https://github.com/dduugg))
@@ -77,6 +78,7 @@ List of Definitions
* [EaselJS](http://www.createjs.com/#!/EaselJS) (by [Pedro Ferreira](https://bitbucket.org/drk4))
* [EasyStar](http://easystarjs.com/) (by [Magnus Gustafsson](https://github.com/Borundin))
* [ember.js](http://emberjs.com/) (by [Boris Yankov](https://github.com/borisyankov))
+* [emissary](https://github.com/atom/emissary) (by [vvakame](https://github.com/vvakame))
* [EpicEditor](http://epiceditor.com/) (by [Boris Yankov](https://github.com/borisyankov))
* [ES6-Promises](https://github.com/jakearchibald/ES6-Promises) (by [François de Campredon](https://github.com/fdecampredon/))
* [expect.js](https://github.com/LearnBoost/expect.js) (by [Teppei Sato](https://github.com/teppeis))
@@ -209,6 +211,7 @@ List of Definitions
* [Meteor](https://www.meteor.com) (by [Dave Allen](https://github.com/fullflavedave))
* [Microsoft Live Connect](http://msdn.microsoft.com/en-us/library/live/hh243643.aspx) (by [John Vilk](https://github.com/jvilk))
* [minimist](https://github.com/substack/minimist) (by [Bart van der Schoor](https://github.com/Bartvds))
+* [mixto](https://github.com/atom/mixto) (by [vvakame](https://github.com/vvakame))
* [Modernizr](http://modernizr.com/) (by [Boris Yankov](https://github.com/borisyankov) and [Theodore Brown](https://github.com/theodorejb/))
* [Moment.js](https://github.com/timrwood/moment) (by [Michael Lakerveld](https://github.com/Lakerfield))
* [MongoDB](http://mongodb.github.io/node-mongodb-native/) (from TypeScript samples, updated by [Niklas Mollenhauer](https://github.com/nikeee))
@@ -225,6 +228,7 @@ List of Definitions
* [Numeral.js](https://github.com/adamwdraper/Numeral-js) (by [Vincent Bortone](https://github.com/vbortone/))
* [OpenLayers](https://github.com/openlayers/openlayers) (by [Ilya Bolkhovsky](https://github.com/bolhovsky/))
* [Passport](http://passportjs.org/) (by [Hiroki Horiuchi](https://github.com/horiuchi/))
+* [pathwatcher](http://atom.github.io/node-pathwatcher/) (by [vvakame](https://github.com/vvakame))
* [Parallel.js](https://github.com/adambom/parallel.js) (by [Josh Baldwin](https://github.com/jbaldwin))
* [Parsimmon](https://github.com/jayferd/parsimmon) (by [Bart van der Schoor](https://github.com/Bartvds))
* [PDF.js](https://github.com/mozilla/pdf.js) (by [Josh Baldwin](https://github.com/jbaldwin))
diff --git a/atom/atom-tests.ts b/atom/atom-tests.ts
new file mode 100644
index 0000000000..505973c9af
--- /dev/null
+++ b/atom/atom-tests.ts
@@ -0,0 +1,77 @@
+///
+///
+///
+
+import path = require("path");
+import _atom = require("atom");
+
+import pathwatcher = require("pathwatcher");
+var File = pathwatcher.File;
+
+class SampleView extends _atom.ScrollView {
+
+ editorId:string;
+ file:pathwatcher.IFile;
+ editor:AtomCore.IEditor;
+
+ static deserialize(state:any):SampleView {
+ return new SampleView(state);
+ }
+
+ static content():any {
+ return this.div({class: 'sample native-key-bindings', tabindex: -1});
+ }
+
+ constructor(params:{editorId?:string; filePath?:string;} = {}) {
+ super();
+
+ this.editorId = params.editorId;
+
+ if (this.editorId) {
+ this.resolveEditor(this.editorId);
+ } else {
+ this.file = new File(params.filePath);
+ }
+ }
+
+ get jq():JQuery {
+ // dirty hack
+ return this;
+ }
+
+ serialize() {
+ return {
+ deserializer: 'SampleView',
+ editorId: this.editorId
+ };
+ }
+
+ destroy() {
+ this.unsubscribe();
+ }
+
+ resolveEditor(editorId:string) {
+ var resolve = ()=> {
+ if (this.editor) {
+ this.jq.trigger("title-changed");
+ } else {
+ var view = this.jq.parents('.pane').view();
+ if (view) {
+ view.destroyItem(this);
+ }
+ }
+ };
+
+ if (atom.workspace) {
+ resolve();
+ } else {
+ atom.packages.once("activated", ()=> {
+ resolve();
+ });
+ }
+ }
+}
+
+atom.deserializers.add(SampleView);
+
+export = SampleView;
diff --git a/atom/atom-tests.ts.tscparams b/atom/atom-tests.ts.tscparams
new file mode 100644
index 0000000000..5f84b97777
--- /dev/null
+++ b/atom/atom-tests.ts.tscparams
@@ -0,0 +1 @@
+--noImplicitAny --module commonjs --target es5
diff --git a/atom/atom.d.ts b/atom/atom.d.ts
new file mode 100644
index 0000000000..14a8dbebae
--- /dev/null
+++ b/atom/atom.d.ts
@@ -0,0 +1,736 @@
+// Type definitions for Atom
+// Project: https://atom.io/
+// Definitions by: vvakame
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+///
+///
+///
+
+// Policy: this definition file only declare element related to `atom`.
+// if js file include to another npm package (e.g. "space-pen", "mixto" and "emissary").
+// you should create a separate file.
+
+// NOTE Document? You should use DevTools hehe...
+
+interface Window {
+ atom: AtomCore.IAtom;
+ measure(description:string, fn:Function):any; // return fn result
+ profile(description:string, fn:Function):any; // return fn result
+}
+
+declare module AtomCore {
+
+// https://atom.io/docs/v0.84.0/advanced/view-system
+ interface IWorkspaceView {
+ prependToBottom:any;
+ prependToTop:any;
+ prependToLeft:any;
+ prependToRight:any;
+ appendToBottom:any;
+ appendToTop:any;
+ appendToLeft:any;
+ appendToRight:any;
+
+ command: Function;
+ }
+
+ interface IPanes {
+ // TBD
+ }
+
+ interface TreeView {
+ // TBD
+ }
+
+ interface ICommandPanel {
+ // TBD
+ }
+
+ interface ITextBuffer {
+ // TBD
+ }
+
+ interface IDisplayBuffer {
+ buffer: ITextBuffer;
+ // TBD
+ }
+
+ interface ICursor {
+ // TBD
+ }
+
+ interface ILanguageMode {
+ // TBD
+ }
+
+ interface ISelection {
+ // TBD
+ }
+
+ interface ISubscription {
+ // TBD
+ }
+
+ interface IEditor {
+ // Serializable.includeInto(Editor);
+ // Delegator.includeInto(Editor);
+
+ deserializing:boolean;
+ callDisplayBufferCreatedHook:boolean;
+ registerEditor:boolean;
+ buffer:ITextBuffer;
+ languageMode: ILanguageMode;
+ cursors:ICursor[];
+ selections: ISelection[];
+ suppressSelectionMerging:boolean;
+ softTabs: boolean;
+ displayBuffer: IDisplayBuffer;
+
+ id:number;
+ behaviors:any;
+ declaredPropertyValues: any;
+ eventHandlersByEventName: any;
+ eventHandlersByNamespace: any;
+ lastOpened: number;
+ subscriptionCounts: any;
+ subscriptionsByObject: any; /* WeakMap */
+ subscriptions: ISubscription[];
+
+ serializeParams():{id:number; softTabs:boolean; scrollTop:number; scrollLeft:number; displayBuffer:any;};
+ deserializeParams(params:any):any;
+ subscribeToBuffer():void;
+ subscribeToDisplayBuffer():void;
+ getViewClass():any; // return type are EditorView
+ destroyed():void;
+ copy():IEditor;
+ getTitle():string;
+ getLongTitle():string;
+ setVisible(visible:boolean):void;
+ setScrollTop(scrollTop:any):void;
+ getScrollTop():any;
+ setScrollLeft(scrollLeft:any):void;
+ getScrollLeft():any;
+ setEditorWidthInChars(editorWidthInChars:any):void;
+ getSoftWrapColumn():any;
+ getSoftTabs():boolean;
+ setSoftTabs(softTabs:boolean):void;
+ getSoftWrap():any;
+ setSoftWrap(softWrap:any):void;
+ getTabText():any;
+ getTabLength():any;
+ setTabLength(tabLength:any):void;
+ clipBufferPosition(bufferPosition:any):void;
+ clipBufferRange(range:any):void;
+ indentationForBufferRow(bufferRow:any):void;
+ setIndentationForBufferRow(bufferRow:any, newLevel:any, _arg:any):void;
+ indentLevelForLine(line:any):number;
+ buildIndentString(number:any):any;
+ save():void;
+ saveAs(filePath:any):void;
+ getPath():any;
+ getText():any;
+ setText(text:any):void;
+ getTextInRange(range:any):any;
+ getLineCount():any;
+ getBuffer():any;
+ getUri():any;
+ isBufferRowBlank(bufferRow:any):void;
+ isBufferRowCommented(bufferRow:any):void;
+ nextNonBlankBufferRow(bufferRow:any):void;
+ getEofBufferPosition():any;
+ getLastBufferRow():any;
+ bufferRangeForBufferRow(row:any, options:any):any;
+ lineForBufferRow(row:any):any;
+ lineLengthForBufferRow(row:any):any;
+ scan():any;
+ scanInBufferRange():any;
+ backwardsScanInBufferRange():any;
+ isModified():any;
+ shouldPromptToSave():any;
+ screenPositionForBufferPosition(bufferPosition:any, options:any):any;
+ bufferPositionForScreenPosition(screenPosition:any, options:any):any;
+ screenRangeForBufferRange(bufferRange:any):any;
+ bufferRangeForScreenRange(screenRange:any):any;
+ clipScreenPosition(screenPosition:any, options:any):any;
+ lineForScreenRow(row:any):any;
+ linesForScreenRows(start:any, end:any):any;
+ getScreenLineCount():any;
+ getMaxScreenLineLength():any;
+ getLastScreenRow():any;
+ bufferRowsForScreenRows(startRow:any, endRow:any):any;
+ bufferRowForScreenRow(row:any):any;
+ scopesForBufferPosition(bufferPosition:any):any;
+ bufferRangeForScopeAtCursor(selector:any):any;
+ tokenForBufferPosition(bufferPosition:any):any;
+ getCursorScopes():any;
+ insertText(text:any, options:any):any;
+ insertNewline():any;
+ insertNewlineBelow():any;
+ insertNewlineAbove():any;
+ indent(options?:any):any;
+ backspace():any;
+ backspaceToBeginningOfWord():any;
+ backspaceToBeginningOfLine():any;
+ delete():any;
+ deleteToEndOfWord():any;
+ deleteLine():any;
+ indentSelectedRows():any;
+ outdentSelectedRows():any;
+ toggleLineCommentsInSelection():any;
+ autoIndentSelectedRows():any;
+ normalizeTabsInBufferRange(bufferRange:any):any;
+ cutToEndOfLine():any;
+ cutSelectedText():any;
+ copySelectedText():any;
+ pasteText(options?:any):any;
+ undo():any;
+ redo():any;
+ foldCurrentRow():any;
+ unfoldCurrentRow():any;
+ foldSelectedLines():any;
+ foldAll():any;
+ unfoldAll():any;
+ foldAllAtIndentLevel(level:any):any;
+ foldBufferRow(bufferRow:any):any;
+ unfoldBufferRow(bufferRow:any):any;
+ isFoldableAtBufferRow(bufferRow:any):any;
+ createFold(startRow:any, endRow:any):any;
+ destroyFoldWithId(id:any):any;
+ destroyFoldsIntersectingBufferRange(bufferRange:any):any;
+ toggleFoldAtBufferRow(bufferRow:any):any;
+ isFoldedAtCursorRow():any;
+ isFoldedAtBufferRow(bufferRow:any):any;
+ isFoldedAtScreenRow(screenRow:any):any;
+ largestFoldContainingBufferRow(bufferRow:any):any;
+ largestFoldStartingAtScreenRow(screenRow:any):any;
+ outermostFoldsInBufferRowRange(startRow:any, endRow:any):any;
+ moveLineUp():any;
+ moveLineDown():any;
+ duplicateLines():any;
+ duplicateLine():any;
+ mutateSelectedText(fn:Function):any;
+ replaceSelectedText(options:any, fn:Function):any;
+ getMarker(id:any):any;
+ getMarkers():any;
+ findMarkers(properties:any):any;
+ markScreenRange():any;
+ markBufferRange():any;
+ markScreenPosition():any;
+ markBufferPosition():any;
+ destroyMarker():any;
+ getMarkerCount():any;
+ hasMultipleCursors():any;
+ getCursors():any;
+ getCursor():any;
+ addCursorAtScreenPosition(screenPosition:any):any;
+ addCursorAtBufferPosition(bufferPosition:any):any;
+ addCursor(marker:any):any;
+ removeCursor(cursor:any):any;
+ addSelection(marker:any, options:any):any;
+ addSelectionForBufferRange(bufferRange:any, options:any):any;
+ setSelectedBufferRange(bufferRange:any, options:any):any;
+ setSelectedBufferRanges(bufferRanges:any, options:any):any;
+ removeSelection(selection:any):any;
+ clearSelections():any;
+ consolidateSelections():any;
+ getSelections():any;
+ getSelection(index:any):any;
+ getLastSelection():any;
+ getSelectionsOrderedByBufferPosition():any;
+ getLastSelectionInBuffer():any;
+ selectionIntersectsBufferRange(bufferRange:any):any;
+ setCursorScreenPosition(position:any, options:any):any;
+ getCursorScreenPosition():any;
+ getCursorScreenRow():any;
+ setCursorBufferPosition(position:any, options:any):any;
+ getCursorBufferPosition():any;
+ getSelectedScreenRange():any;
+ getSelectedBufferRange():any;
+ getSelectedBufferRanges():any;
+ getSelectedText():any;
+ getTextInBufferRange(range:any):any;
+ setTextInBufferRange(range:any, text:any):any;
+ getCurrentParagraphBufferRange():any;
+ getWordUnderCursor(options:any):any;
+ moveCursorUp(lineCount:any):any;
+ moveCursorDown(lineCount:any):any;
+ moveCursorLeft():any;
+ moveCursorRight():any;
+ moveCursorToTop():any;
+ moveCursorToBottom():any;
+ moveCursorToBeginningOfScreenLine():any;
+ moveCursorToBeginningOfLine():any;
+ moveCursorToFirstCharacterOfLine():any;
+ moveCursorToEndOfScreenLine():any;
+ moveCursorToEndOfLine():any;
+ moveCursorToBeginningOfWord():any;
+ moveCursorToEndOfWord():any;
+ moveCursorToBeginningOfNextWord():any;
+ moveCursorToPreviousWordBoundary():any;
+ moveCursorToNextWordBoundary():any;
+ moveCursors(fn:Function):any;
+ selectToScreenPosition(position:any):any;
+ selectRight():any;
+ selectLeft():any;
+ selectUp(rowCount:any):any;
+ selectDown(rowCount:any):any;
+ selectToTop():any;
+ selectAll():any;
+ selectToBottom():any;
+ selectToBeginningOfLine():any;
+ selectToFirstCharacterOfLine():any;
+ selectToEndOfLine():any;
+ selectToPreviousWordBoundary():any;
+ selectToNextWordBoundary():any;
+ selectLine():any;
+ addSelectionBelow():any;
+ addSelectionAbove():any;
+ splitSelectionsIntoLines():any;
+ transpose():any;
+ upperCase():any;
+ lowerCase():any;
+ joinLines():any;
+ selectToBeginningOfWord():any;
+ selectToEndOfWord():any;
+ selectToBeginningOfNextWord():any;
+ selectWord():any;
+ selectMarker(marker:any):any;
+ mergeCursors():any;
+ expandSelectionsForward():any;
+ expandSelectionsBackward(fn:Function):any;
+ finalizeSelections():any;
+ mergeIntersectingSelections():any;
+ preserveCursorPositionOnBufferReload():any;
+ getGrammar(): IGrammar;
+ setGrammar(grammer:IGrammar):void;
+ reloadGrammar():any;
+ shouldAutoIndent():any;
+ transact(fn:Function):any;
+ beginTransaction():any;
+ commitTransaction():any;
+ abortTransaction():any;
+ inspect():any;
+ logScreenLines(start:any, end:any):any;
+ handleGrammarChange():any;
+ handleMarkerCreated(marker:any):any;
+ getSelectionMarkerAttributes():any;
+ joinLine():any;
+ }
+
+ interface IGrammar {
+ scopeName: string;
+ // TBD
+ }
+
+ interface IPane /* extends Theorist.Model */ {
+ items:any[];
+ activeItem:any;
+
+ serializeParams():any;
+ deserializeParams(params:any):any;
+ getViewClass():any; // return type are PaneView
+ isActive():boolean;
+ focus():void;
+ blur():void;
+ activate():void;
+ getPanes():IPane[];
+ getItems():any[];
+ getActiveItem():any;
+ getActiveEditor():any;
+ itemAtIndex(index:number):any;
+ activateNextItem():any;
+ activatePreviousItem():any;
+ getActiveItemIndex():number;
+ activateItemAtIndex(index:number):any;
+ activateItem(item:any):any;
+ addItem(item:any, index:number):any;
+ addItems(items:any[], index:number):any[];
+ removeItem(item:any, destroying:any):void;
+ moveItem(item:any, newIndex:number):void;
+ moveItemToPane(item:any, pane:IPane, index:number):void;
+ destroyActiveItem():boolean; // always return false
+ destroyItem(item:any):boolean;
+ destroyItems():any[];
+ destroyInactiveItems():any[];
+ destroy():void;
+ destroyed():any[];
+ promptToSaveItem(item:any):boolean;
+ saveActiveItem():void;
+ saveActiveItemAs():void;
+ saveItem(item:any, nextAction:Function):void;
+ saveItemAs(item:any, nextAction:Function):void;
+ saveItems():any[];
+ itemForUri(uri:any):any;
+ activateItemForUri(uri:any):any;
+ copyActiveItem():void;
+ splitLeft(params:any):IPane;
+ splitRight(params:any):IPane;
+ splitUp(params:any):IPane;
+ splitDown(params:any):IPane;
+ split(orientation:string, side:string, params:any):IPane;
+ findLeftmostSibling():IPane;
+ findOrCreateRightmostSibling():IPane;
+ }
+
+// https://atom.io/docs/v0.84.0/advanced/serialization
+ interface ISerializationStatic {
+ deserialize(data:ISerializationInfo):T;
+ new (data:T): ISerialization;
+ }
+
+ interface ISerialization {
+ serialize():ISerializationInfo;
+ }
+
+ interface ISerializationInfo {
+ deserializer: string;
+ }
+
+ interface IBrowserWindow {
+ getPosition():number[];
+ getSize():number[];
+ }
+
+ interface IAtomWindowDimentions {
+ x:number;
+ y:number;
+ width:number;
+ height:number;
+ }
+
+ interface IProject {
+ // TBD
+ }
+
+ interface IWorkspaceStatic {
+ new():IWorkspace;
+ }
+
+ interface IWorkspace {
+ deserializeParams(params:any):any;
+ serializeParams():{paneContainer:any;fullScreen:boolean;};
+ eachEditor(callback:Function):void;
+ getEditors():IEditor[];
+ open(uri:string, options:any):Q.Promise;
+ openLicense():void;
+ openSync(uri:string, options:any):any;
+ openUriInPane(uri:string, pane:any, options:any):Q.Promise;
+ reopenItemSync():any;
+ registerOpener(opener:(urlToOpen:string)=>any):void;
+ unregisterOpener(opener:Function):void;
+ getOpeners():any;
+ getActivePane(): IPane;
+ getPanes():any;
+ saveAll():void;
+ activateNextPane():any;
+ activatePreviousPane():any;
+ paneForUri: (uri:string) => IPane;
+ saveActivePaneItem():any;
+ saveActivePaneItemAs():any;
+ destroyActivePaneItem():any;
+ destroyActivePane():any;
+ getActiveEditor():IEditor;
+ increaseFontSize():void;
+ decreaseFontSize():void;
+ resetFontSize():void;
+ itemOpened(item:any):void;
+ onPaneItemDestroyed(item:any):void;
+ destroyed():void;
+ }
+
+ interface IAtomSettings {
+ appVersion: string;
+ bootstrapScript: string;
+ devMode: boolean;
+ initialPath: string;
+ pathToOpen: string;
+ resourcePath: string;
+ shellLoadTime: number;
+ windowState:string;
+ }
+
+ interface IAtomState {
+ mode:string;
+ packageStates:any;
+ project:any;
+ syntax:any;
+ version:number;
+ windowDimensions:any;
+ workspace:any;
+ }
+
+ interface IDeserializerManager {
+ deserializers:Function;
+ add:Function;
+ remove:Function;
+ deserialize:Function;
+ get:Function;
+ }
+
+ interface IConfig {
+ get(keyPath:string):any;
+ // TBD
+ }
+
+ interface IKeymapManager {
+ defaultTarget:HTMLElement;
+ // TBD
+ }
+
+ interface IPackageManager extends Emissary.IEmitter {
+ packageDirPaths:string[];
+ loadedPackages:any;
+ activePackages:any;
+ packageStates:any;
+ packageActivators:any[];
+
+ getApmPath():string;
+ getPackageDirPaths():string;
+ getPackageState(name:string):any;
+ setPackageState(name:string, state:any):void;
+ enablePackage(name:string):any;
+ disablePackage(name:string):any;
+ activate():void;
+ registerPackageActivator(activator:any, types:any):void;
+ activatePackages(packages:any):void;
+ activatePackage(name:string):void;
+ deactivatePackages():void;
+ deactivatePackage(name:string):void;
+ getActivePackages():any;
+ getActivePackage(name:string):any;
+ isPackageActive(name:string):boolean;
+ unobserveDisabledPackages():void;
+ observeDisabledPackages():void;
+ loadPackages():void;
+ loadPackage(nameOrPath:string):void;
+ unloadPackages():void;
+ unloadPackage(name:string):void;
+ getLoadedPackage(name:string):any;
+ isPackageLoaded(name:string):boolean;
+ getLoadedPackages():any;
+ getLoadedPackagesForTypes(types:any):any[];
+ resolvePackagePath(name:string):string;
+ isPackageDisabled(name:string):boolean;
+ hasAtomEngine(packagePath:string):boolean;
+ isBundledPackage(name:string):boolean;
+ getPackageDependencies():any;
+ getAvailablePackagePaths():any[];
+ getAvailablePackageNames():any[];
+ getAvailablePackageMetadata():any[];
+ }
+
+ interface IThemeManager {
+ // TBD
+ }
+
+ interface IContextMenuManager {
+ // TBD
+ }
+
+ interface IMenuManager {
+ // TBD
+ }
+
+ interface IClipboard {
+ // TBD
+ }
+
+ interface ISyntax {
+ // TBD
+ }
+
+ interface IWindowEventHandler {
+ // TBD
+ }
+
+ interface IAtomStatic extends ISerializationStatic {
+ version: number;
+ loadSettings: IAtomSettings;
+ loadOrCreate(mode:string):IAtom;
+ loadState(mode:any):void;
+ getStatePath(mode:any):string;
+ getConfigDirPath():string;
+ getStorageDirPath():string;
+ getLoadSettings():IAtomSettings;
+ getCurrentWindow():IBrowserWindow;
+ getVersion():string;
+ isReleasedVersion():boolean;
+
+ new(state:IAtomState):IAtom;
+ }
+
+ interface IAtom {
+ constructor:IAtomStatic;
+
+ state:IAtomState;
+ mode:string;
+ deserializers:IDeserializerManager;
+ config: IConfig;
+ keymaps: IKeymapManager;
+ keymap: IKeymapManager;
+ packages: IPackageManager;
+ themes: IThemeManager;
+ contextManu: IContextMenuManager;
+ menu: IMenuManager;
+ clipboard:IClipboard;
+ syntax:ISyntax;
+ windowEventHandler: IWindowEventHandler;
+
+ // really exists? start
+ subscribe:Function;
+ unsubscribe:Function;
+ loadTime:number;
+ workspaceViewParentSelector:string;
+
+ project: IProject;
+ workspaceView: IWorkspaceView;
+ workspace: IWorkspace;
+ // really exists? end
+
+ initialize:Function;
+ // registerRepresentationClass:Function;
+ // registerRepresentationClasses:Function;
+ setBodyPlatformClass:Function;
+ getCurrentWindow():IBrowserWindow;
+ getWindowDimensions:Function;
+ setWindowDimensions:Function;
+ restoreWindowDimensions:Function;
+ storeWindowDimensions:Function;
+ getLoadSettings:Function;
+ deserializeProject: Function;
+ deserializeWorkspaceView:Function;
+ deserializePackageStates:Function;
+ deserializeEditorWindow:Function;
+ startEditorWindow:Function;
+ unloadEditorWindow:Function;
+ loadThemes:Function;
+ watchThemes:Function;
+ open:Function;
+ confirm:Function;
+ showSaveDialog:Function;
+ showSaveDialogSync:Function;
+ openDevTools:Function;
+ toggleDevTools:Function;
+ executeJavaScriptInDevTools:Function;
+ reload:Function;
+ focus:Function;
+ show:Function;
+ hide:Function;
+ setSize:Function;
+ setPosition:Function;
+ center:Function;
+ displayWindow:Function;
+ close:Function;
+ exit:Function;
+ inDevMode:Function;
+ inSpecMode:Function;
+ toggleFullScreen:Function;
+ setFullScreen:Function;
+ isFullScreen:Function;
+ getVersion:Function;
+ isReleasedVersion:Function;
+ getGitHubAuthTokenName:Function;
+ setGitHubAuthToken:Function;
+ getGitHubAuthToken:Function;
+ getConfigDirPath:Function;
+ saveSync:Function;
+ getWindowLoadTime():number;
+ crashMainProcess:Function;
+ crashRenderProcess:Function;
+ beep:Function;
+ getUserInitScriptPath:Function;
+ requireUserInitScript:Function;
+ requireWithGlobals:Function;
+ }
+
+ interface IBufferedNodeProcessStatic {
+ new (arg:any):IBufferedNodeProcess;
+ }
+
+ interface IBufferedNodeProcess extends IBufferedProcess {
+ }
+
+ interface IBufferedProcessStatic {
+ new (arg:any):IBufferedProcess;
+ }
+
+ interface IBufferedProcess {
+ process:Function;
+ killed:boolean;
+
+ bufferStream:Function;
+ kill:Function;
+ }
+
+ interface IGitStatic {
+ new(path:any, options:any):IGit;
+ }
+
+ interface IGit {
+ }
+
+ interface IPointStatic {
+ new(row:any, column:any):IPoint;
+ }
+
+ interface IPoint {
+ // TBD
+ }
+
+ interface IRangeStatic {
+ new(pointA:IPoint, pointB:IPoint):IRange;
+ }
+
+ interface IRange {
+ // TBD
+ }
+
+ interface ITaskStatic {
+ new(taskPath:any):ITask;
+ }
+
+ interface ITask {
+ // TBD
+ }
+}
+
+declare var atom:AtomCore.IAtom;
+
+declare module "atom" {
+ import spacePen = require("space-pen");
+
+ var $:typeof spacePen.$;
+ var $$$:typeof spacePen.$$$;
+
+ var BufferedNodeProcess:AtomCore.IBufferedNodeProcessStatic;
+ var BufferedProcess:AtomCore.IBufferedProcessStatic;
+ var EditorView:any;
+ var Git:AtomCore.IGitStatic;
+ var Point:AtomCore.IPointStatic;
+ var Range:AtomCore.IRangeStatic;
+
+ class View extends spacePen.View implements Emissary.ISubscriber {
+ // Subscriber.includeInto(spacePen.View);
+
+ // inherit from Subscriber
+ subscribeWith(eventEmitter:any, methodName:string, args:any):any;
+
+ addSubscription(subscription:any):any;
+
+ subscribe(eventEmitterOrSubscription:any, ...args:any[]):any;
+
+ subscribeToCommand(eventEmitter:any, ...args:any[]):any;
+
+ unsubscribe(object?:any):any;
+ }
+
+ class ScrollView extends View {
+ // TBD
+ }
+
+ var SelectListView:any;
+ var Task:AtomCore.ITaskStatic;
+ var Workspace:AtomCore.IWorkspaceStatic;
+ var WorkspaceView:any; // WorkspaceView extends View
+}
diff --git a/emissary/emissary-tests.ts b/emissary/emissary-tests.ts
new file mode 100644
index 0000000000..3785f52668
--- /dev/null
+++ b/emissary/emissary-tests.ts
@@ -0,0 +1,22 @@
+///
+
+import emissary = require("emissary");
+
+var Emitter = emissary.Emitter;
+
+var emitter = new Emitter();
+
+emitter.on('foo', ()=>{});
+emitter.emit('a');
+emitter.getSubscriptionCount('b');
+emitter.on('b-subscription-added', (handler:any) =>{});
+emitter.emit('b', 'b2');
+emitter.off('foo', ()=>{});
+emitter.signal('a');
+
+var Subscriber = emissary.Subscriber;
+
+var subscriber = new Subscriber();
+subscriber.subscribe(emitter, 'event1', ()=>{});
+subscriber.unsubscribe();
+subscriber.unsubscribe(emitter);
diff --git a/emissary/emissary.d.ts b/emissary/emissary.d.ts
new file mode 100644
index 0000000000..4c98193e0d
--- /dev/null
+++ b/emissary/emissary.d.ts
@@ -0,0 +1,51 @@
+// Type definitions for emissary
+// Project: https://github.com/atom/emissary
+// Definitions by: vvakame
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+///
+
+declare module Emissary {
+ interface IEmitterStatic extends Mixto.IMixinStatic {
+ new ():IEmitter;
+ }
+
+ interface IEmitter {
+ on(eventNames:string, handler:Function):any; // return value type are Signal
+ once(eventName:string, handler:Function):any; // return value type are Signal
+ signal(eventName:string):void;
+ behavior(eventName:string, initialValue:any):void;
+ emit(eventName:string, ...args:any[]):void;
+ off(eventNames:string, handler:Function):void;
+ pauseEvents(eventNames:string):void;
+ resumeEvents(eventNames:string):void;
+ incrementSubscriptionCount(eventName:string):number;
+ decrementSubscriptionCount(eventName:string):number;
+ getSubscriptionCount(eventName:string):number;
+ hasSubscriptions(eventName:string):boolean;
+ }
+
+ interface ISubscriberStatic extends Mixto.IMixinStatic {
+ new ():ISubscriber;
+ }
+
+ interface ISubscriber {
+ subscribeWith(eventEmitter:any, methodName:string, args:any):any;
+
+ addSubscription(subscription:any):any;
+
+ subscribe(eventEmitterOrSubscription:any, ...args:any[]):any;
+
+ subscribeToCommand(eventEmitter:any, ...args:any[]):any;
+
+ unsubscribe(object?:any):any;
+ }
+}
+
+declare module "emissary" {
+ var Emitter:Emissary.IEmitterStatic;
+ var Subscriber:Emissary.ISubscriberStatic;
+ var Signal:Function; // TODO
+ var Behavior:Function; // TODO
+ var combine:Function; // TODO
+}
diff --git a/mixto/mixto-tests.ts b/mixto/mixto-tests.ts
new file mode 100644
index 0000000000..4e6dcad726
--- /dev/null
+++ b/mixto/mixto-tests.ts
@@ -0,0 +1,16 @@
+///
+
+import Mixin = require("mixto");
+
+interface ISampleStatic extends Mixto.IMixinStatic {
+ new ():ISample;
+}
+
+interface ISample {
+ test():string;
+}
+
+declare var Sample: ISampleStatic;
+
+Sample.includeInto(Function);
+Sample.extend({});
diff --git a/mixto/mixto.d.ts b/mixto/mixto.d.ts
new file mode 100644
index 0000000000..1edf8bef1e
--- /dev/null
+++ b/mixto/mixto.d.ts
@@ -0,0 +1,16 @@
+// Type definitions for mixto
+// Project: https://github.com/atom/mixto
+// Definitions by: vvakame
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+declare module Mixto {
+ interface IMixinStatic {
+ includeInto(constructor:any):void;
+ extend(object:any):void;
+ }
+}
+
+declare module "mixto" {
+ var _tmp:Mixto.IMixinStatic;
+ export = _tmp;
+}
diff --git a/pathwatcher/pathwatcher-tests.ts b/pathwatcher/pathwatcher-tests.ts
new file mode 100644
index 0000000000..4cefea3a76
--- /dev/null
+++ b/pathwatcher/pathwatcher-tests.ts
@@ -0,0 +1,10 @@
+///
+
+import pathwatcher = require("pathwatcher");
+var File = pathwatcher.File;
+
+var filePath: string;
+var file = new File(filePath);
+
+pathwatcher.watch(filePath, ()=>{
+});
diff --git a/pathwatcher/pathwatcher.d.ts b/pathwatcher/pathwatcher.d.ts
new file mode 100644
index 0000000000..1f481979ba
--- /dev/null
+++ b/pathwatcher/pathwatcher.d.ts
@@ -0,0 +1,87 @@
+// Type definitions for pathwatcher
+// Project: https://github.com/atom/node-pathwatcher
+// Definitions by: vvakame
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+///
+///
+
+declare module "pathwatcher" {
+
+ import events = require("events");
+
+ interface IHandleWatcher extends events.EventEmitter {
+ onEvent(event:any, filePath:any, oldFilePath:any):any;
+ start():void;
+ closeIfNoListener():void;
+ close():void;
+ }
+
+ interface IPathWatcher {
+ isWatchingParent:boolean;
+ path:any;
+ handleWatcher:IHandleWatcher;
+
+ close():void;
+ }
+
+ interface IFileStatic {
+ new (path:string, symlink?:boolean):IFile;
+ }
+
+ interface IFile {
+ realPath:string;
+ path:string;
+ symlink:boolean;
+ cachedContents:string;
+ digest:string;
+
+ handleEventSubscriptions():void;
+ setPath(path:string):void;
+ getPath():string;
+ getRealPathSync():string;
+ getBaseName():string;
+ write(text:string):void;
+ readSync(flushCache:boolean):string;
+ read(flushCache?:boolean):Q.Promise;
+ exists():boolean;
+ setDigest(contents:string):void;
+ getDigest():string;
+ writeFileWithPrivilegeEscalationSync (filePath:string, text:string):void;
+ handleNativeChangeEvent(eventType:string, eventPath:string):void;
+ detectResurrectionAfterDelay():void;
+ detectResurrection():void;
+ subscribeToNativeChangeEvents():void;
+ unsubscribeFromNativeChangeEvents():void;
+ }
+
+ interface IDirectoryStatic {
+ new (path:string, symlink?:boolean):IDirectory;
+ }
+
+ interface IDirectory {
+ realPath:string;
+ path:string;
+ symlink:boolean;
+
+ getBaseName():string;
+ getPath():void;
+ getRealPathSync():string;
+ contains(pathToCheck:string):boolean;
+ relativize(fullPath:string):string;
+ getEntriesSync():any[]; // return type are {File | Directory}[]
+ getEntries(callback:Function):void;
+ subscribeToNativeChangeEvents():void;
+ unsubscribeFromNativeChangeEvents():void;
+ isPathPrefixOf(prefix:string, fullPath:string):boolean;
+ }
+
+ function watch(path:string, callback:Function):IPathWatcher;
+
+ function closeAllWatchers():void;
+
+ function getWatchedPaths():string[];
+
+ var File:IFileStatic;
+ var Directory:IDirectoryStatic;
+}
diff --git a/space-pen/space-pen-tests.ts b/space-pen/space-pen-tests.ts
new file mode 100644
index 0000000000..05c2eea03b
--- /dev/null
+++ b/space-pen/space-pen-tests.ts
@@ -0,0 +1,28 @@
+///
+
+import SpacePen = require("space-pen");
+import View = SpacePen.View;
+
+class Spacecraft extends View {
+ static content() {
+ this.div(()=> {
+ this.h1("Spacecraft");
+ this.ol(()=> {
+ this.li("Apollo");
+ this.li("Soyuz");
+ this.li("Space Shuttle");
+ });
+ });
+ }
+
+ constructor() {
+ super();
+ }
+}
+
+var view = new Spacecraft();
+(view).find('ol').append('Star Destroyer');
+
+(view).on('click', 'li', function () {
+ alert("They clicked on " + $(this).text());
+});
diff --git a/space-pen/space-pen.d.ts b/space-pen/space-pen.d.ts
new file mode 100644
index 0000000000..64d0321557
--- /dev/null
+++ b/space-pen/space-pen.d.ts
@@ -0,0 +1,616 @@
+///
+
+// http://atom.github.io/space-pen/
+
+interface JQuery {
+ view():any;
+ views():any[];
+}
+
+interface JQuery {
+ scrollBottom():number;
+ scrollBottom(newValue:number):JQuery;
+ scrollDown():JQuery;
+ scrollUp():JQuery;
+ scrollToTop():JQuery;
+ scrollToBottom():JQuery;
+ scrollRight():number;
+ scrollRight(newValue:number):JQuery;
+ pageUp():JQuery;
+ pageDown():JQuery;
+ isOnDom():boolean;
+ isVisible():boolean;
+ isHidden():boolean;
+ isDisabled():boolean;
+ enable():JQuery;
+ disable():JQuery;
+ insertAt(index:number, element:any):JQuery;
+ removeAt(index:number):JQuery;
+ indexOf(child:any):any;
+ containsElement(element:any):boolean;
+ preempt(eventName:any, handler:Function):any;
+ handlers(eventName:any):any;
+ hasParent():boolean;
+ hasFocus():boolean;
+ flashError():number;
+ trueHeight():any;
+ trueWidth():any;
+ document(eventName:any, docString:string):any;
+ events():any;
+ command(eventName:any, handler:any):any;
+ command(eventName:any, selector:any, handler:any):any;
+ command(eventName:any, selector:any, options:any, handler:any):any;
+ iconSize(size:number):void;
+ intValue():number;
+}
+
+declare class View /* implements JQuery */ {
+
+ static builderStack:Builder[];
+
+ static subview(name:any, view:any):void;
+
+ static text(str:string):void;
+
+ static tag(tagName:any, ...args:any[]):void;
+
+ static raw(str:string):void;
+
+ static pushBuilder():void;
+
+ static popBuilder():Builder;
+
+ static buildHtml(fn:()=>void):any[];
+
+ static render(fn:()=>void):JQuery;
+
+ // please override this method!
+ static content(...args:any[]):void;
+
+ // tag start
+ static a(...args:any[]):void;
+
+ static abbr(...args:any[]):void;
+
+ static address(...args:any[]):void;
+
+ static article(...args:any[]):void;
+
+ static aside(...args:any[]):void;
+
+ static audio(...args:any[]):void;
+
+ static b(...args:any[]):void;
+
+ static bdi(...args:any[]):void;
+
+ static bdo(...args:any[]):void;
+
+ static blockquote(...args:any[]):void;
+
+ static body(...args:any[]):void;
+
+ static button(...args:any[]):void;
+
+ static canvas(...args:any[]):void;
+
+ static caption(...args:any[]):void;
+
+ static cite(...args:any[]):void;
+
+ static code(...args:any[]):void;
+
+ static colgroup(...args:any[]):void;
+
+ static datalist(...args:any[]):void;
+
+ static dd(...args:any[]):void;
+
+ static del(...args:any[]):void;
+
+ static details(...args:any[]):void;
+
+ static dfn(...args:any[]):void;
+
+ static div(...args:any[]):void;
+
+ static dl(...args:any[]):void;
+
+ static dt(...args:any[]):void;
+
+ static em(...args:any[]):void;
+
+ static fieldset(...args:any[]):void;
+
+ static figcaption(...args:any[]):void;
+
+ static figure(...args:any[]):void;
+
+ static footer(...args:any[]):void;
+
+ static form(...args:any[]):void;
+
+ static h1(...args:any[]):void;
+
+ static h2(...args:any[]):void;
+
+ static h3(...args:any[]):void;
+
+ static h4(...args:any[]):void;
+
+ static h5(...args:any[]):void;
+
+ static h6(...args:any[]):void;
+
+ static head(...args:any[]):void;
+
+ static header(...args:any[]):void;
+
+ static hgroup(...args:any[]):void;
+
+ static html(...args:any[]):void;
+
+ static i(...args:any[]):void;
+
+ static iframe(...args:any[]):void;
+
+ static ins(...args:any[]):void;
+
+ static kbd(...args:any[]):void;
+
+ static label(...args:any[]):void;
+
+ static legend(...args:any[]):void;
+
+ static li(...args:any[]):void;
+
+ static map(...args:any[]):void;
+
+ static mark(...args:any[]):void;
+
+ static menu(...args:any[]):void;
+
+ static meter(...args:any[]):void;
+
+ static nav(...args:any[]):void;
+
+ static noscript(...args:any[]):void;
+
+ static object(...args:any[]):void;
+
+ static ol(...args:any[]):void;
+
+ static optgroup(...args:any[]):void;
+
+ static option(...args:any[]):void;
+
+ static output(...args:any[]):void;
+
+ static p(...args:any[]):void;
+
+ static pre(...args:any[]):void;
+
+ static progress(...args:any[]):void;
+
+ static q(...args:any[]):void;
+
+ static rp(...args:any[]):void;
+
+ static rt(...args:any[]):void;
+
+ static ruby(...args:any[]):void;
+
+ static s(...args:any[]):void;
+
+ static samp(...args:any[]):void;
+
+ static script(...args:any[]):void;
+
+ static section(...args:any[]):void;
+
+ static select(...args:any[]):void;
+
+ static small(...args:any[]):void;
+
+ static span(...args:any[]):void;
+
+ static strong(...args:any[]):void;
+
+ static style(...args:any[]):void;
+
+ static sub(...args:any[]):void;
+
+ static summary(...args:any[]):void;
+
+ static sup(...args:any[]):void;
+
+ static table(...args:any[]):void;
+
+ static tbody(...args:any[]):void;
+
+ static td(...args:any[]):void;
+
+ static textarea(...args:any[]):void;
+
+ static tfoot(...args:any[]):void;
+
+ static th(...args:any[]):void;
+
+ static thead(...args:any[]):void;
+
+ static time(...args:any[]):void;
+
+ static title(...args:any[]):void;
+
+ static tr(...args:any[]):void;
+
+ static u(...args:any[]):void;
+
+ static ul(...args:any[]):void;
+
+ static video(...args:any[]):void;
+
+ static area(...args:any[]):void;
+
+ static base(...args:any[]):void;
+
+ static br(...args:any[]):void;
+
+ static col(...args:any[]):void;
+
+ static command(...args:any[]):void;
+
+ static embed(...args:any[]):void;
+
+ static hr(...args:any[]):void;
+
+ static img(...args:any[]):void;
+
+ static input(...args:any[]):void;
+
+ static keygen(...args:any[]):void;
+
+ static link(...args:any[]):void;
+
+ static meta(...args:any[]):void;
+
+ static param(...args:any[]):void;
+
+ static source(...args:any[]):void;
+
+ static track(...args:any[]):void;
+
+ static wbrk(...args:any[]):void;
+
+ // tag end
+
+ initialize(view:View, args:any):void;
+
+ constructor(...args:any[]);
+
+ buildHtml(params:any):any;
+
+ wireOutlets(view:View):void;
+
+ bindEventHandlers(view:View):void;
+
+ pushStack(elems:any):any;
+
+ end():any;
+
+ command(commandName:any, selector:any, options:any, handler:any):any;
+
+ preempt(eventName:any, handler:any):any;
+}
+
+declare class Builder {
+ document:any[];
+ postProcessingSteps:any[];
+
+ buildHtml():any[];
+
+ tag(name:string, ...args:any[]):void;
+
+ openTag(name:string, attributes:any):void;
+
+ closeTag(name:string):void;
+
+ text(str:string):void;
+
+ raw(str:string):void;
+
+ subview(outletName:any, subview:View):void;
+
+ extractOptions(args:any):any;
+}
+
+declare module "space-pen" {
+
+ // copy & paste start
+ class View /* implements JQueryStatic */ {
+
+ static builderStack:Builder[];
+
+ static subview(name:any, view:any):void;
+
+ static text(str:string):void;
+
+ static tag(tagName:any, ...args:any[]):void;
+
+ static raw(str:string):void;
+
+ static pushBuilder():void;
+
+ static popBuilder():Builder;
+
+ static buildHtml(fn:()=>void):any[];
+
+ static render(fn:()=>void):JQuery;
+
+ // please override this method!
+ static content(...args:any[]):void;
+
+ // tag start
+ static a(...args:any[]):any;
+
+ static abbr(...args:any[]):any;
+
+ static address(...args:any[]):any;
+
+ static article(...args:any[]):any;
+
+ static aside(...args:any[]):any;
+
+ static audio(...args:any[]):any;
+
+ static b(...args:any[]):any;
+
+ static bdi(...args:any[]):any;
+
+ static bdo(...args:any[]):any;
+
+ static blockquote(...args:any[]):any;
+
+ static body(...args:any[]):any;
+
+ static button(...args:any[]):any;
+
+ static canvas(...args:any[]):any;
+
+ static caption(...args:any[]):any;
+
+ static cite(...args:any[]):any;
+
+ static code(...args:any[]):any;
+
+ static colgroup(...args:any[]):any;
+
+ static datalist(...args:any[]):any;
+
+ static dd(...args:any[]):any;
+
+ static del(...args:any[]):any;
+
+ static details(...args:any[]):any;
+
+ static dfn(...args:any[]):any;
+
+ static div(...args:any[]):any;
+
+ static dl(...args:any[]):any;
+
+ static dt(...args:any[]):any;
+
+ static em(...args:any[]):any;
+
+ static fieldset(...args:any[]):any;
+
+ static figcaption(...args:any[]):any;
+
+ static figure(...args:any[]):any;
+
+ static footer(...args:any[]):any;
+
+ static form(...args:any[]):any;
+
+ static h1(...args:any[]):any;
+
+ static h2(...args:any[]):any;
+
+ static h3(...args:any[]):any;
+
+ static h4(...args:any[]):any;
+
+ static h5(...args:any[]):any;
+
+ static h6(...args:any[]):any;
+
+ static head(...args:any[]):any;
+
+ static header(...args:any[]):any;
+
+ static hgroup(...args:any[]):any;
+
+ static html(...args:any[]):any;
+
+ static i(...args:any[]):any;
+
+ static iframe(...args:any[]):any;
+
+ static ins(...args:any[]):any;
+
+ static kbd(...args:any[]):any;
+
+ static label(...args:any[]):any;
+
+ static legend(...args:any[]):any;
+
+ static li(...args:any[]):any;
+
+ static map(...args:any[]):any;
+
+ static mark(...args:any[]):any;
+
+ static menu(...args:any[]):any;
+
+ static meter(...args:any[]):any;
+
+ static nav(...args:any[]):any;
+
+ static noscript(...args:any[]):any;
+
+ static object(...args:any[]):any;
+
+ static ol(...args:any[]):any;
+
+ static optgroup(...args:any[]):any;
+
+ static option(...args:any[]):any;
+
+ static output(...args:any[]):any;
+
+ static p(...args:any[]):any;
+
+ static pre(...args:any[]):any;
+
+ static progress(...args:any[]):any;
+
+ static q(...args:any[]):any;
+
+ static rp(...args:any[]):any;
+
+ static rt(...args:any[]):any;
+
+ static ruby(...args:any[]):any;
+
+ static s(...args:any[]):any;
+
+ static samp(...args:any[]):any;
+
+ static script(...args:any[]):any;
+
+ static section(...args:any[]):any;
+
+ static select(...args:any[]):any;
+
+ static small(...args:any[]):any;
+
+ static span(...args:any[]):any;
+
+ static strong(...args:any[]):any;
+
+ static style(...args:any[]):any;
+
+ static sub(...args:any[]):any;
+
+ static summary(...args:any[]):any;
+
+ static sup(...args:any[]):any;
+
+ static table(...args:any[]):any;
+
+ static tbody(...args:any[]):any;
+
+ static td(...args:any[]):any;
+
+ static textarea(...args:any[]):any;
+
+ static tfoot(...args:any[]):any;
+
+ static th(...args:any[]):any;
+
+ static thead(...args:any[]):any;
+
+ static time(...args:any[]):any;
+
+ static title(...args:any[]):any;
+
+ static tr(...args:any[]):any;
+
+ static u(...args:any[]):any;
+
+ static ul(...args:any[]):any;
+
+ static video(...args:any[]):any;
+
+ static area(...args:any[]):any;
+
+ static base(...args:any[]):any;
+
+ static br(...args:any[]):any;
+
+ static col(...args:any[]):any;
+
+ static command(...args:any[]):any;
+
+ static embed(...args:any[]):any;
+
+ static hr(...args:any[]):any;
+
+ static img(...args:any[]):any;
+
+ static input(...args:any[]):any;
+
+ static keygen(...args:any[]):any;
+
+ static link(...args:any[]):any;
+
+ static meta(...args:any[]):any;
+
+ static param(...args:any[]):any;
+
+ static source(...args:any[]):any;
+
+ static track(...args:any[]):any;
+
+ static wbrk(...args:any[]):any;
+
+ // tag end
+
+ initialize(view:View, args:any):void;
+
+ constructor(...args:any[]);
+
+ buildHtml(params:any):any;
+
+ wireOutlets(view:View):void;
+
+ bindEventHandlers(view:View):void;
+
+ pushStack(elems:any):any;
+
+ end():any;
+
+ command(commandName:any, selector:any, options:any, handler:any):any;
+
+ preempt(eventName:any, handler:any):any;
+ }
+
+ class Builder {
+ document:any[];
+ postProcessingSteps:any[];
+
+ buildHtml():any[];
+
+ tag(name:string, ...args:any[]):void;
+
+ openTag(name:string, attributes:any):void;
+
+ closeTag(name:string):void;
+
+ text(str:string):void;
+
+ raw(str:string):void;
+
+ subview(outletName:any, subview:View):void;
+
+ extractOptions(args:any):any;
+ }
+ // copy & paste end
+
+
+ var jQuery:JQueryStatic;
+ var $:JQueryStatic;
+ var $$:(fn:Function)=>JQuery; // same type as View.render's return type.
+ var $$$:(fn:Function)=>any; // same type as View.buildHtml's return type's [0].
+}