module TypeScript.Parser { class SyntaxCursor { public currentNode(): SyntaxNode { return null; } } } module TypeScript { export interface ISyntaxElement { }; export interface ISyntaxToken { }; export class PositionedElement { public childIndex(child: ISyntaxElement) { return Syntax.childIndex(); } } export class PositionedToken { constructor(parent: PositionedElement, token: ISyntaxToken, fullStart: number) { } } } module TypeScript { export class SyntaxNode { public findToken(position: number, includeSkippedTokens: boolean = false): PositionedToken { var positionedToken = this.findTokenInternal(null, position, 0); return null; } findTokenInternal(x, y, z) { return null; } } } module TypeScript.Syntax { export function childIndex() { } export class VariableWidthTokenWithTrailingTrivia implements ISyntaxToken { private findTokenInternal(parent: PositionedElement, position: number, fullStart: number) { return new PositionedToken(parent, this, fullStart); } } }