import { Desc, EventStream, EventStreamSeed, Observable, Property, PropertySeed, Scope, Unsub } from "./abstractions";
import { PropertySeedImpl } from "./property";
import { EventStreamSeedImpl } from "./eventstream";
export declare type FlatMapOptions = {
latest?: boolean;
};
export declare type Spawner = (value: A) => O;
export interface FlatMapOp {
(s: EventStream | EventStreamSeed): EventStreamSeed;
}
export interface FlatMapOpScoped {
(s: EventStream | EventStreamSeed): EventStream;
}
export declare function flatMap(fn: Spawner | EventStreamSeed>): FlatMapOp;
export declare function flatMap(fn: Spawner | EventStreamSeed>, scope: Scope): FlatMapOpScoped;
export declare type FlatMapChild> = {
observable: B;
unsub?: Unsub;
};
export declare class FlatMapStreamSeed extends EventStreamSeedImpl {
constructor(desc: Desc, s: EventStreamSeed, fn: Spawner | EventStreamSeed>, options?: FlatMapOptions);
}
export declare class FlatMapPropertySeed extends PropertySeedImpl {
constructor(desc: Desc, src: Property | PropertySeed, fn: Spawner | Property>, options?: FlatMapOptions);
}