import {Observable, Stream, Property, Event as KEvent, Pool} from 'kefir' import {Clock} from '@sinonjs/fake-timers' export type Event = KEvent & { current?: boolean } export type EventWithTime = [number, Event] export type Options = {current: boolean} export type Watcher = { log: Event[] unwatch(): void } export interface Helpers { END: string VALUE: string ERROR: string send(stream$: Observable, values: Event[]): Observable value(v: V, opts?: Options): Event error(e: E, opts?: Options): Event end(opts?: Options): Event activate(obs: Observable): typeof obs deactivate(obs: Observable): typeof obs prop(): Property stream(): Stream pool(): Pool shakeTimers(clock: Clock): void withFakeTime(cb: (tick: (x: number) => void, clock: Clock) => void, reverseSimultaneous?: boolean): void logItem(event: KEvent, current: boolean): Event watch(obs: Observable): Watcher watchWithTime(stream$: Observable): EventWithTime[] } export interface HelpersFactory { (Kefir: typeof import('kefir').default): Helpers } declare const createHelpers: HelpersFactory export default createHelpers