import type { HTMLAttributes } from 'react';
export type LiveWaveformProps = HTMLAttributes<HTMLDivElement> & {
    /** When true, the waveform reads from the analyser and animates. */
    active?: boolean;
    /** When true, hold the waveform and show a processing shimmer. */
    loading?: boolean;
    /** Externally-owned analyser node (mic stream lives in useVoiceInput). */
    analyser?: AnalyserNode | null;
    barWidth?: number;
    barGap?: number;
    barRadius?: number;
    /** Minimum bar height in px. */
    barHeight?: number;
    /** CSS color string for bars. Falls back to computed text color. */
    barColor?: string;
    fadeEdges?: boolean;
    fadeWidth?: number;
    height?: string | number;
    sensitivity?: number;
    /** How many ms between sampling new bars (controls scroll speed). */
    updateRate?: number;
};
/**
 * Canvas-based microphone waveform visualizer (scrolling mode).
 *
 * New amplitude samples enter at the right edge and scroll leftward as a
 * continuous stream, fading in on the right and out on the left. The mic
 * stream and AudioContext are owned externally (see useVoiceInput) and
 * passed in via the `analyser` prop to avoid duplicate getUserMedia calls.
 */
export declare function LiveWaveform({ active, loading, analyser, barWidth, barGap, barRadius, barHeight: baseBarHeight, barColor, fadeEdges, fadeWidth, height, sensitivity, updateRate, className, ...props }: LiveWaveformProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=LiveWaveform.d.ts.map