import type { IStream } from '../types.js';
/**
* Sample values from one stream at the times of events in another
*
* values: -1-2-3-4-5-6-7-8->
* sampler: ---x---x---x----->
* sample: ---2---4---6----->
*/
export declare const sample: ISampleCurry;
/**
* Combine values from two streams at sample times
*
* values: -1-2-3-4-5-6->
* sampler: ---a---b---c->
* sampleMap: ---A---B---C->
* | | |
* | | +-- [6,c]
* | +-- [4,b]
* +-- [2,a]
*/
export declare const sampleMap: ISampleMapCurry;
export interface ISampleCurry {
(values: IStream, sampler: IStream): IStream;
(values: IStream): (sampler: IStream) => IStream;
}
export interface ISampleMapCurry {
(f: (a: A, b: B) => C, values: IStream, sampler: IStream): IStream;
(f: (a: A, b: B) => C, values: IStream): (sampler: IStream) => IStream;
(f: (a: A, b: B) => C): (values: IStream) => (sampler: IStream) => IStream;
}