import { AsyncIterableLike } from "../async-like"; import { Retainer } from "./sync"; export interface AsyncRetainer extends AsyncIterable { has?(value: T): boolean | Promise; add(value: T): void | Promise; } export interface AsyncRetainerWithHas extends AsyncRetainer { has(value: T): boolean | Promise; } export declare function asyncRetain(iterable: AsyncIterableLike, retainer?: Retainer | AsyncRetainer): AsyncIterable;