/**
 * EffectPipeline — host-domain infrastructure for managed outbound
 * delivery.
 *
 * Orchestrates emission through sinks and collects delivery
 * observations. This is NOT substrate — it operates entirely
 * outside the graph. The graph provides effect entities (written by
 * participants); the pipeline externalizes them.
 *
 * @module EffectPipeline
 * @see docs/design/layer-boundary.md
 */
import { type EffectEmission } from '../types/EffectEmission.ts';
import type { ExternalizationPolicy } from '../types/ExternalizationPolicy.ts';
import type { DeliveryObservation } from '../types/DeliveryObservation.ts';
import type EffectSinkPort from '../../ports/EffectSinkPort.ts';
export declare class EffectPipeline {
    private _sink;
    private _lens;
    private _emissions;
    private _observations;
    /**
     * Constructs a pipeline bound to a delivery sink and an externalization lens.
     */
    constructor(options: {
        sink: EffectSinkPort;
        lens: Readonly<ExternalizationPolicy>;
    });
    /**
     * Returns the current externalization policy governing delivery behavior.
     */
    get lens(): Readonly<ExternalizationPolicy>;
    /**
     * Replaces the externalization policy for subsequent deliveries.
     */
    set lens(newLens: Readonly<ExternalizationPolicy>);
    /**
     * Returns a copy of the emission log.
     */
    get emissions(): ReadonlyArray<EffectEmission>;
    /**
     * Returns a copy of the observation log.
     */
    get observations(): ReadonlyArray<DeliveryObservation>;
    /**
     * Emits an effect and delivers it through the configured sink.
     */
    emit(kind: string, payload: unknown, // nosemgrep: ts-no-unknown-outside-adapters -- 0025B
    options?: {
        id: string;
        timestamp: number;
        writer?: string | null;
        coordinate?: {
            frontier?: Record<string, string> | null;
            ceiling?: number | null;
        };
    }): Promise<{
        emission: EffectEmission;
        observations: DeliveryObservation[];
    }>;
    /**
     * Appends one or more delivery observations to the internal observation log.
     */
    private _recordObservations;
}
