import type { HTMLAttributes } from 'react';
export type LiveWaveformProps = HTMLAttributes & {
/** 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