import { Functor, FunctorInstances } from './typeclasses/functor'; import { Cartesian } from './typeclasses/cartesian'; import { Apply } from './typeclasses/apply'; import { FlatMap } from './typeclasses/flatmap'; import { Semigroup, SemigroupInstanceType } from './typeclasses/semigroup'; import { Stream } from '../xs'; import { FantasyX } from './fantasyx'; import { State } from './state'; import { $ } from './typeclasses'; export declare class Xstream { streamS: State<$, $>; constructor(streamS: State<$, $>); filter(f: (a: A) => boolean): Xstream; static fromIntent(): Xstream; static fromEvent(type: string, name: string, defaultValue?: string): Xstream; static fromPromise(p: Promise): Xstream; static from(p: $): Xstream; toFantasyX(): FantasyX; } declare module './typeclasses' { interface _ { "Xstream": Xstream; } } declare module './typeclasses/functor' { namespace Functor { let Xstream: XstreamFunctor; } } export declare class XstreamFunctor implements Functor<"Xstream"> { map(f: (a: A) => B, fa: Xstream): Xstream; } export declare class XstreamCartesian implements Cartesian<"Xstream"> { product(fa: Xstream, fb: Xstream): Xstream; } declare module './typeclasses/cartesian' { namespace Cartesian { let Xstream: XstreamCartesian; } } export declare class XstreamApply implements Apply<"Xstream"> { ap(fab: Xstream B>, fa: Xstream): Xstream; map: (f: (a: A) => B, fa: Xstream<"ArrayStream" | "MostStream" | "RxStream", any, A>) => Xstream<"ArrayStream" | "MostStream" | "RxStream", any, B>; product: (fa: Xstream, fb: Xstream) => Xstream; } declare module './typeclasses/apply' { namespace Apply { let Xstream: XstreamApply; } } export declare class XstreamFlatMap extends XstreamApply { flatMap(f: (a: A) => Xstream, fa: Xstream): Xstream; } declare module './typeclasses/flatmap' { namespace FlatMap { let Xstream: XstreamFlatMap; } } export declare class XstreamApplicative extends XstreamApply { pure(v: A): Xstream; } declare module './typeclasses/applicative' { namespace Applicative { let Xstream: XstreamApplicative; } } export declare class XstreamMonad extends XstreamApplicative implements FlatMap<"Xstream"> { flatMap: (f: (a: A) => Xstream<"ArrayStream" | "MostStream" | "RxStream", any, B>, fa: Xstream<"ArrayStream" | "MostStream" | "RxStream", any, A>) => Xstream<"ArrayStream" | "MostStream" | "RxStream", any, B>; } declare module './typeclasses/monad' { namespace Monad { let Xstream: XstreamMonad; } } export declare class XstreamSemigroup implements Semigroup> { _T: Xstream; concat(fa: Xstream, fb: Xstream): Xstream; } declare module './typeclasses/semigroup' { namespace Semigroup { let Xstream: XstreamSemigroup; } }