import type { EveAgentReducer, EveAgentReducerEvent } from "#client/reducer.js";
/** Owns reducer replay when optimistic events are replaced by server events. */
export declare class EveAgentProjection<TData> {
    #private;
    constructor(reducer: EveAgentReducer<TData>, events: readonly EveAgentReducerEvent[]);
    get data(): TData;
    reset(): void;
    append(event: EveAgentReducerEvent): void;
    remove(predicate: (event: EveAgentReducerEvent) => boolean): void;
    replace(predicate: (event: EveAgentReducerEvent) => boolean, replacement: EveAgentReducerEvent): void;
}
