/**
 * Ingestion Pipeline
 *
 * Bridges the file watcher and the kernel: converts FileChangeEvents
 * into VcsOps and applies them to the kernel via mutate().
 */
import type { FileChangeEvent } from '../vcs/types.js';
import type { VcsOp } from '../vcs/types.js';
export declare class Ingestion {
    private agentId;
    private lastOpHash;
    private onOp;
    constructor(opts: {
        agentId: string;
        lastOpHash?: string;
        onOp: (op: VcsOp) => void | Promise<void>;
    });
    /**
     * Processes a single FileChangeEvent, producing and emitting a VcsOp.
     */
    process(event: FileChangeEvent): Promise<VcsOp>;
    /**
     * Processes a batch of FileChangeEvents in order.
     */
    processBatch(events: FileChangeEvent[]): Promise<VcsOp[]>;
    getLastOpHash(): string | undefined;
    setLastOpHash(hash: string | undefined): void;
}
//# sourceMappingURL=ingestion.d.ts.map