///
import reactivity = require('reactivity')
// a Hasher is a function that takes any value and returns a Hash ( string )
export interface Hasher { ( any ): string }
// an async is simply a function. we don't know much
// return type is hidden in a callback
// and number of arguments is variable
export interface AsyncFunc extends Function {}
export interface Func { ( ...args:any[] ): T }
export interface Block { () : T }
export interface Stopper { (): void }
export interface Comparator {
( a: any, b: any) : boolean
}
export interface SubscribeCallback {
(
error: Error,
result?: T,
monitor?: reactivity.Monitor,
complete?: boolean,
stopper?: () => void
) : void
}
export interface RunCallback {
(
error: Error,
result?: T,
monitor?: reactivity.Monitor,
complete?: boolean
) : void
}