import { Fiber } from "@effect/core/io/Fiber/definition";
import { Chunk } from "@tsplus/stdlib/collections/Chunk/definition";
import { Stream } from "@effect/core/stream/Stream/definition";
import { LazyArg } from "@tsplus/stdlib/data/Function";
import { Duration } from "@tsplus/stdlib/data/Duration";
import { Channel } from "@effect/core/stream/Channel/definition/base";
/**
 * Delays the emission of values by holding new values for a set duration. If
 * no new values arrive during that time the value is emitted, however if a
 * new value is received during the holding period the previous value is
 * discarded and the process is repeated with the new value.
 *
 * This operator is useful if you have a stream of "bursty" events which
 * eventually settle down and you only need the final event of the burst.
 * @example A search engine may only want to initiate a search after a user has
paused typing so as to not prematurely recommend results.
 * @tsplus fluent ets/Stream debounce
 * @tsplus location "@effect/core/stream/Stream/operations/debounce"
 */
export declare function debounce_<R, E, A>(self: Stream<R, E, A>, duration: LazyArg<Duration>, __tsplusTrace?: string): Stream<R, E, A>;
/**
 * Delays the emission of values by holding new values for a set duration. If
 * no new values arrive during that time the value is emitted, however if a
 * new value is received during the holding period the previous value is
 * discarded and the process is repeated with the new value.
 *
 * This operator is useful if you have a stream of "bursty" events which
 * eventually settle down and you only need the final event of the burst.
 * @example A search engine may only want to initiate a search after a user has
paused typing so as to not prematurely recommend results.
 * @tsplus static ets/Stream/Aspects debounce
 * @tsplus pipeable ets/Stream debounce
 * @tsplus location "@effect/core/stream/Stream/operations/debounce"
 */
export declare const debounce: (duration: LazyArg<Duration>, __tsplusTrace?: string) => <R, E, A>(self: import("../definition").Stream<R, E, A>) => import("../definition").Stream<R, E, A>;
//# sourceMappingURL=debounce.d.ts.map