import { Accum } from "../_interfaces"; import { Observable } from "../Observable"; import { Property } from "../Property"; /** * Scans `EventStream` or `Property` with given seed value and accumulator * function, resulting to a `Property`. The seed value is used as an initial * value for the result property. * * @param seed Seed value to use for the accumulation * @param acc Accumulator function `(state, value) => state` * @param observable Source observable * * @example * * F.pipe(F.fromArray(["!", "!"]), * F.scan("Hello Francis", (state, value) => state + value), * F.log("Greeting:")) * // logs: "Hello Francis", "Hello Francis!", "Hello Francis!!", * * @stateful * @public */ export declare const scan: CurriedScan; export interface CurriedScan { (seed: StateType, acc: Accum, observable: Observable): Property; (seed: StateType): (acc: Accum, observable: Observable) => Property; (seed: StateType, acc: Accum): (observable: Observable) => Property; (seed: StateType): (acc: Accum) => (observable: Observable) => Property; }