import { CommonLogger, ErrorMode, Mapper, Predicate } from '@naturalcycles/js-lib';
import { AbortableTransform } from '../pipeline/pipeline';
import { TransformTyped } from '../stream.model';
export interface TransformMapSyncOptions<IN = any, OUT = IN> {
    /**
     * @default true
     */
    objectMode?: boolean;
    /**
     * @default false
     * Set true to support "multiMap" - possibility to return [] and emit 1 result for each item in the array.
     */
    flattenArrayOutput?: boolean;
    /**
     * Predicate to filter outgoing results (after mapper).
     * Allows to not emit all results.
     *
     * Defaults to "pass everything".
     * Simpler way to skip individual entries is to return SKIP symbol.
     */
    predicate?: Predicate<OUT>;
    /**
     * @default THROW_IMMEDIATELY
     */
    errorMode?: ErrorMode;
    /**
     * If defined - will be called on every error happening in the stream.
     * Called BEFORE observable will emit error (unless skipErrors is set to true).
     */
    onError?: (err: Error, input: IN) => any;
    /**
     * Progress metric
     *
     * @default `stream`
     */
    metric?: string;
    logger?: CommonLogger;
}
export declare class TransformMapSync extends AbortableTransform {
}
/**
 * Sync (not async) version of transformMap.
 * Supposedly faster, for cases when async is not needed.
 */
export declare function transformMapSync<IN = any, OUT = IN>(mapper: Mapper<IN, OUT>, opt?: TransformMapSyncOptions): TransformTyped<IN, OUT>;
