import { HKT, Kind, Kind2, Kind3, URIS, URIS2, URIS3 } from 'fp-ts/lib/HKT';
import { MonadTask, MonadTask1, MonadTask2, MonadTask2C, MonadTask3 } from 'fp-ts/lib/MonadTask';
export interface Subscription {
readonly unsubscribe: () => void;
}
export interface Observer {
readonly next: (a: A) => void;
readonly end: () => void;
}
export interface Observable {
readonly subscribe: (observer: Observer) => Subscription;
}
export interface FromEvent {
(target: WindowEventHandlers, event: K): HKT;
(target: EventTarget, event: string): HKT;
}
export interface FromEvent1 {
(target: WindowEventHandlers, event: K): Kind;
(target: EventTarget, event: string): Kind;
}
export interface FromEvent2 {
(target: WindowEventHandlers, event: K): Kind2;
(target: EventTarget, event: string): Kind2;
}
export interface FromEvent2C {
(target: WindowEventHandlers, event: K): Kind2;
(target: EventTarget, event: string): Kind2;
}
export interface FromEvent3 {
(target: WindowEventHandlers, event: K): Kind3;
(target: EventTarget, event: string): Kind3;
}
export declare type Adapter = [(a: A) => void, HKT];
export declare type Adapter1 = [(a: A) => void, Kind];
export declare type Adapter2 = [(a: A) => void, Kind2];
export declare type Adapter3 = [(a: A) => void, Kind3];
export interface MonadObservable extends MonadTask {
readonly fromEvent: FromEvent;
readonly fromObservable: (observable: Observable) => HKT;
readonly createAdapter: () => Adapter;
readonly subscribe: (fa: HKT, observer: Observer) => Subscription;
}
export interface MonadObservable1 extends MonadTask1 {
readonly fromEvent: FromEvent1;
readonly fromObservable: (observable: Observable) => Kind;
readonly createAdapter: () => Adapter1;
readonly subscribe: (fa: Kind, observer: Observer) => Subscription;
}
export interface MonadObservable2 extends MonadTask2 {
readonly fromEvent: FromEvent2;
readonly fromObservable: (observable: Observable) => Kind2;
readonly createAdapter: () => Adapter2;
readonly subscribe: (fa: Kind2, observer: Observer) => Subscription;
}
export interface MonadObservable2C extends MonadTask2C {
readonly fromEvent: FromEvent2C;
readonly fromObservable: (observable: Observable) => Kind2;
readonly createAdapter: () => Adapter2;
readonly subscribe: (fa: Kind2, observer: Observer) => Subscription;
}
export interface MonadObservable3 extends MonadTask3 {
readonly fromEvent: FromEvent3;
readonly fromObservable: (observable: Observable) => Kind3;
readonly createAdapter: () => Adapter3;
readonly subscribe: (fa: Kind3, observer: Observer) => Subscription;
}