diff --git a/knockout.rx/knockout.rx-tests.ts b/knockout.rx/knockout.rx-tests.ts
new file mode 100644
index 0000000000..674e9bb6a4
--- /dev/null
+++ b/knockout.rx/knockout.rx-tests.ts
@@ -0,0 +1,12 @@
+///
+
+var ax: Rx.IObservable;
+
+var ao = ax.toKoObservable();
+
+ao(100);
+ao.getSubscriptionsCount();
+
+ao.toObservable();
+ao.toObservable("change");
+ao.toObservable("error");
\ No newline at end of file
diff --git a/knockout.rx/knockout.rx.d.ts b/knockout.rx/knockout.rx.d.ts
new file mode 100644
index 0000000000..4f44153d8c
--- /dev/null
+++ b/knockout.rx/knockout.rx.d.ts
@@ -0,0 +1,26 @@
+// Type definitions for knockout.rx 0.1
+// Project: https://github.com/Igorbek/knockout.rx
+// Definitions by: Igor Oleinikov
+
+///
+///
+
+interface KnockoutSubscribableFunctions {
+ toObservable(event?: string): Rx.IObservable;
+ toObservable(event: string): Rx.IObservable;
+}
+
+interface KnockoutObservableFunctions {
+ toObservableWithReplyLatest(): Rx.IObservable;
+}
+
+interface KnockoutComputedFunctions {
+ toObservableWithReplyLatest(): Rx.IObservable;
+}
+
+declare module Rx {
+ interface IObservable {
+ toKoSubscribable(): KnockoutSubscribable;
+ toKoObservable(initialValue?: T): KnockoutObservable;
+ }
+}
diff --git a/knockout/knockout.d.ts b/knockout/knockout.d.ts
index 63f9938943..c3d6328360 100644
--- a/knockout/knockout.d.ts
+++ b/knockout/knockout.d.ts
@@ -52,10 +52,8 @@ interface KnockoutSubscription {
}
interface KnockoutSubscribable extends KnockoutSubscribableFunctions {
- (): T;
- (value: T): void;
-
subscribe(callback: (newValue: T) => void, target?: any, event?: string): KnockoutSubscription;
+ subscribe(callback: (newValue: TEvent) => void, target: any, event: string): KnockoutSubscription;
extend(requestedExtenders: { [key: string]: any; }): KnockoutSubscribable;
getSubscriptionsCount(): number;
}
@@ -70,6 +68,9 @@ interface KnockoutComputedStatic {
}
interface KnockoutComputed extends KnockoutSubscribable, KnockoutComputedFunctions {
+ (): T;
+ (value: T): void;
+
peek(): T;
dispose(): void;
isActive(): boolean;
@@ -92,6 +93,9 @@ interface KnockoutObservableStatic {
}
interface KnockoutObservable extends KnockoutSubscribable, KnockoutObservableFunctions {
+ (): T;
+ (value: T): void;
+
peek(): T;
valueHasMutated(): void;
valueWillMutate(): void;