import { BaseWrapper, PossiblePointer } from './BaseWrapper';
import { AniraWasmInstance } from '../factory';
import { InferenceConfig } from './InferenceConfig';
import { RingBuffer } from './utils/RingBuffer';
import { BufferF } from './utils/BufferF';
import { VectorBufferF, VectorRingBuffer } from './Vectors';
/**
 * TypeScript wrapper for anira::PrePostProcessor
 * Thread-safe C API wrapper
 */
export declare class PrePostProcessor extends BaseWrapper {
    constructor(wasmInstance: AniraWasmInstance, config: PossiblePointer<InferenceConfig>, createFn?: (configPtr: number) => number);
    /** Free the underlying C++ object. See :ref:`lifecycle-and-cleanup` for when to call this. */
    destroy(): void;
    /** Mirrors :cpp:func:`anira::PrePostProcessor::pre_process`. */
    preProcess(ringBuffers: PossiblePointer<VectorRingBuffer>, buffers: PossiblePointer<VectorBufferF>, backend: number): void;
    /** Mirrors :cpp:func:`anira::PrePostProcessor::post_process`. */
    postProcess(buffers: PossiblePointer<VectorBufferF>, ringBuffers: PossiblePointer<VectorRingBuffer>, backend: number): void;
    /** Mirrors :cpp:func:`anira::PrePostProcessor::set_input`. */
    setInput(value: number, channel: number, tensorIndex: number): void;
    /** Mirrors :cpp:func:`anira::PrePostProcessor::set_output`. */
    setOutput(value: number, channel: number, tensorIndex: number): void;
    /** Mirrors :cpp:func:`anira::PrePostProcessor::get_input`. */
    getInput(channel: number, tensorIndex: number): number;
    /** Mirrors :cpp:func:`anira::PrePostProcessor::get_output`. */
    getOutput(channel: number, tensorIndex: number): number;
    /** Mirrors :cpp:func:`anira::PrePostProcessor::pop_samples_from_buffer() <void anira::PrePostProcessor::pop_samples_from_buffer(RingBuffer&, BufferF&, size_t)>`. */
    popSamplesFromBuffer(ringBuffer: PossiblePointer<RingBuffer>, buffer: PossiblePointer<BufferF>, numSamples: number): void;
    /** Mirrors :cpp:func:`anira::PrePostProcessor::pop_samples_from_buffer() <void anira::PrePostProcessor::pop_samples_from_buffer(RingBuffer&, BufferF&, size_t, size_t)>`. */
    popSamplesFromBuffer(ringBuffer: PossiblePointer<RingBuffer>, buffer: PossiblePointer<BufferF>, numNewSamples: number, numOldSamples: number): void;
    /** Mirrors :cpp:func:`anira::PrePostProcessor::pop_samples_from_buffer() <void anira::PrePostProcessor::pop_samples_from_buffer(RingBuffer&, BufferF&, size_t, size_t, size_t)>`. */
    popSamplesFromBuffer(ringBuffer: PossiblePointer<RingBuffer>, buffer: PossiblePointer<BufferF>, numNewSamples: number, numOldSamples: number, offset: number): void;
    /** Mirrors :cpp:func:`anira::PrePostProcessor::push_samples_to_buffer`. */
    pushSamplesToBuffer(buffer: PossiblePointer<BufferF>, ringBuffer: PossiblePointer<RingBuffer>, numSamples: number): void;
}
//# sourceMappingURL=PrePostProcessor.d.ts.map