import { AniraWasmInstance } from '../../factory';
import { BaseWrapper, PossiblePointer } from '../BaseWrapper';
/**
 * TypeScript wrapper for anira::BufferF
 * Thread-safe C API wrapper
 */
export declare class BufferF extends BaseWrapper {
    constructor(wasmInstance: AniraWasmInstance, numChannels?: number, numSamples?: number);
    /** Free the underlying C++ object. See :ref:`lifecycle-and-cleanup` for when to call this. */
    destroy(): void;
    /** Mirrors :cpp:func:`anira::Buffer::get_num_channels`. */
    getNumChannels(): number;
    /** Mirrors :cpp:func:`anira::Buffer::get_num_samples`. */
    getNumSamples(): number;
    /** Mirrors :cpp:func:`anira::Buffer::resize`. */
    resize(numChannels: number, numSamples: number): void;
    /** Mirrors :cpp:func:`anira::Buffer::get_read_pointer() <const T *anira::Buffer::get_read_pointer(size_t) const>`. */
    getReadPointer(channel: number): number;
    /** Mirrors :cpp:func:`anira::Buffer::get_read_pointer() <const T *anira::Buffer::get_read_pointer(size_t, size_t) const>`. */
    getReadPointer(channel: number, sampleIndex: number): number;
    /** Mirrors :cpp:func:`anira::Buffer::get_write_pointer() <T *anira::Buffer::get_write_pointer(size_t)>`. */
    getWritePointer(channel: number): number;
    /** Mirrors :cpp:func:`anira::Buffer::get_write_pointer() <T *anira::Buffer::get_write_pointer(size_t, size_t)>`. */
    getWritePointer(channel: number, sampleIndex: number): number;
    /** Mirrors :cpp:func:`anira::Buffer::get_array_of_read_pointers`. */
    getArrayOfReadPointers(): number[];
    /** Mirrors :cpp:func:`anira::Buffer::get_array_of_write_pointers`. */
    getArrayOfWritePointers(): number[];
    /** Mirrors :cpp:func:`anira::Buffer::data`. */
    data(): number;
    /** Mirrors :cpp:func:`anira::Buffer::swap_data() <void anira::Buffer::swap_data(Buffer&)>`. */
    swapData(other: PossiblePointer<BufferF>): void;
    /** Mirrors :cpp:func:`anira::Buffer::swap_data() <void anira::Buffer::swap_data(T*&, size_t)>`. */
    swapData(rawPointer: number, size: number): void;
    /** Mirrors :cpp:func:`anira::Buffer::reset_channel_ptr`. */
    resetChannelPtr(): void;
    /** Mirrors :cpp:func:`anira::Buffer::get_sample`. */
    getSample(channel: number, sampleIndex: number): number;
    /** Mirrors :cpp:func:`anira::Buffer::set_sample`. */
    setSample(channel: number, sampleIndex: number, value: number): void;
    /** Mirrors :cpp:func:`anira::Buffer::clear`. */
    clear(): void;
}
//# sourceMappingURL=BufferF.d.ts.map