import type { Channel } from '../types/graph.js'; /** * The last write wins. * * The right default for a scalar a node computes fresh each time. Under fan-out the winner is * whichever branch reduced last, so prefer an accumulating channel when several branches write the * same slot and the outcome matters. */ export declare function lastValue(initial?: T): Channel; /** Concatenates every write, which is what a message history or an event log wants. */ export declare function appendList(): Channel; /** Shallow-merges object writes, so two branches can each contribute their own keys. */ export declare function mergeObject>(): Channel; /** Sums numeric writes, for a counter several branches increment. */ export declare function counter(initial?: number): Channel; /** Keeps distinct values in first-seen order. */ export declare function appendSet(): Channel; /** Builds a channel from a plain reducer, for a rule none of the built-ins covers. */ export declare function reducerChannel(reduce: (current: T | undefined, update: T) => T, initial?: () => T): Channel;