/// module Rx { export module internals { // Priority Queue for Scheduling export interface PriorityQueue { length: number; isHigherPriority(left: number, right: number): boolean; percolate(index: number): void; heapify(index: number): void; peek(): ScheduledItem; removeAt(index: number): void; dequeue(): ScheduledItem; enqueue(item: ScheduledItem): void; remove(item: ScheduledItem): boolean; } interface PriorityQueueStatic { new (capacity: number) : PriorityQueue; count: number; } export var PriorityQueue : PriorityQueueStatic; } } (function() { var queue = new Rx.internals.PriorityQueue(100); var n : number = queue.length var b : boolean = queue.isHigherPriority(1, 100); queue.percolate(100); queue.heapify(100); var item: Rx.internals.ScheduledItem = queue.peek(); queue.removeAt(100); var item: Rx.internals.ScheduledItem = queue.dequeue(); queue.enqueue(item); b = queue.remove(item); n = Rx.internals.PriorityQueue.count; });