/**
 * IActivitySink — pluggable consumer for ActivityFrame events.
 *
 * Registered in the service registry via ACTIVITY_SINK_KEY.
 * SystemLlm pushes frames to the sink after building them,
 * in parallel with the existing activityTo push path.
 *
 * See: ARCHITECTURE/ARCHITECTURE-OBSERVABILITY-PIPELINE-V2.md
 */
import type { ActivityFrame } from './ActivityFrame';
/**
 * Symbol key for registering the activity sink in the service registry.
 * Usage: context.setService(ACTIVITY_SINK_KEY, sink)
 */
export declare const ACTIVITY_SINK_KEY: unique symbol;
export interface IActivitySink {
    onFrame(frame: ActivityFrame): void;
    dispose?(): void;
}
/**
 * Fan-out sink that dispatches to multiple child sinks.
 * Catches and swallows errors from individual sinks so one bad consumer
 * never blocks the pipeline.
 */
export declare class CompoundActivitySink implements IActivitySink {
    private _sinks;
    add(sink: IActivitySink): void;
    remove(sink: IActivitySink): void;
    onFrame(frame: ActivityFrame): void;
    dispose(): void;
}
//# sourceMappingURL=IActivitySink.d.ts.map