/**
 * creates a meter, which can read the raw value of the signal
 *
 *
 */
import { NodeParamsConfig } from '../utils/params/ParamsConfig';
import { AudioBuilder } from '../../../core/audio/AudioBuilder';
import { AudioNodeAnalyserType } from '../../poly/NodeContext';
import { BaseAnalyserAudioNode } from './_BaseAnalyser';
declare class MeterAudioParamsConfig extends NodeParamsConfig {
    /** @param a value from between 0 and 1 where 0 represents no time averaging with the last analysis frame */
    smoothing: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>;
    /** @param normalizes the output between 0 and 1. The value will be in decibel otherwise. */
    normalRange: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>;
    /** @param display meter param */
    updateValueParam: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>;
    /** @param meter value */
    value: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>;
    /** @param display meter param */
    updateRangeParam: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>;
    /** @param accumulated range */
    maxRange: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.VECTOR2>;
    /** @param resetMaxRange */
    resetMaxRange: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BUTTON>;
}
export declare class MeterAudioNode extends BaseAnalyserAudioNode<MeterAudioParamsConfig> {
    paramsConfig: MeterAudioParamsConfig;
    static type(): AudioNodeAnalyserType;
    initializeNode(): void;
    cook(inputContents: AudioBuilder[]): void;
    private _arrayValue;
    getAnalyserValue(): Float32Array | number[] | undefined;
    private __effect__;
    private _effect;
    private _createEffect;
    private _resetEffect;
    static PARAM_CALLBACK_updateEffect(node: MeterAudioNode): void;
    private _updateEffect;
    static PARAM_CALLBACK_updateUpdateMeterParam(node: MeterAudioNode): void;
    static PARAM_CALLBACK_resetMaxRange(node: MeterAudioNode): void;
    private _updateMeterParam;
    private _updateOnTickHook;
    private _registerOnTickHook;
    private _unRegisterOnTickHook;
    private _tickCallbackName;
}
export {};
