import { AniraWasmInstance } from '../factory';
import { PrePostProcessor } from './PrePostProcessor';
import { InferenceConfig } from './InferenceConfig';
import { PossiblePointer } from './BaseWrapper';
import { VectorBufferF, VectorRingBuffer } from './Vectors';
/**
 * TypeScript wrapper for JSPrePostProcessor.
 * Each instance is identified by its C++ pointer and carries its own
 * pre/post implementation that the inference worker dispatches to.
 */
export declare class JSPrePostProcessor extends PrePostProcessor {
    constructor(wasmInstance: AniraWasmInstance, inferenceConfig: PossiblePointer<InferenceConfig>);
    /** Free the underlying C++ object. See :ref:`lifecycle-and-cleanup` for when to call this. */
    destroy(): void;
    /**
     * Called by the inference worker when C++ invokes the JS callback.
     * Override in a subclass to implement custom preprocessing.
     */
    preProcess(ringBuffers: PossiblePointer<VectorRingBuffer>, buffers: PossiblePointer<VectorBufferF>, backend: number): void;
    /**
     * Called by the inference worker when C++ invokes the JS callback.
     * Override in a subclass to implement custom postprocessing.
     */
    postProcess(buffers: PossiblePointer<VectorBufferF>, ringBuffers: PossiblePointer<VectorRingBuffer>, backend: number): void;
}
//# sourceMappingURL=JSPrePostProcessor.d.ts.map