sourav-das/stem-separator
3
1import type { WaveSurferOptions } from './wavesurfer.js';2export type ChannelData = Array<Float32Array | number[]>;3export type BarSegment = {4 x: number;5 y: number;6 width: number;7 height: number;8};9export type LinePath = Array<{10 x: number;11 y: number;12}>;13export declare const DEFAULT_HEIGHT = 128;14export declare const MAX_CANVAS_WIDTH = 8000;15export declare const MAX_NODES = 10;16export declare function clampToUnit(value: number): number;17export declare function calculateBarRenderConfig({ width, height, length, options, pixelRatio, }: {18 width: number;19 height: number;20 length: number;21 options: WaveSurferOptions;22 pixelRatio: number;23}): {24 halfHeight: number;25 barWidth: number;26 barGap: number;27 barRadius: number;28 barMinHeight: number;29 barIndexScale: number;30 barSpacing: number;31};32export declare function calculateBarHeights({ maxTop, maxBottom, halfHeight, vScale, barMinHeight, barAlign, }: {33 maxTop: number;34 maxBottom: number;35 halfHeight: number;36 vScale: number;37 barMinHeight?: number;38 barAlign?: WaveSurferOptions['barAlign'];39}): {40 topHeight: number;41 totalHeight: number;42};43export declare function resolveBarYPosition({ barAlign, halfHeight, topHeight, totalHeight, canvasHeight, }: {44 barAlign: WaveSurferOptions['barAlign'];45 halfHeight: number;46 topHeight: number;47 totalHeight: number;48 canvasHeight: number;49}): number;50export declare function calculateBarSegments({ channelData, barIndexScale, barSpacing, barWidth, halfHeight, vScale, canvasHeight, barAlign, barMinHeight, }: {51 channelData: ChannelData;52 barIndexScale: number;53 barSpacing: number;54 barWidth: number;55 halfHeight: number;56 vScale: number;57 canvasHeight: number;58 barAlign: WaveSurferOptions['barAlign'];59 barMinHeight: number;60}): BarSegment[];61export declare function getRelativePointerPosition(rect: DOMRect, clientX: number, clientY: number): [number, number];62export declare function resolveChannelHeight({ optionsHeight, optionsSplitChannels, parentHeight, numberOfChannels, defaultHeight, }: {63 optionsHeight?: WaveSurferOptions['height'];64 optionsSplitChannels?: WaveSurferOptions['splitChannels'];65 parentHeight: number;66 numberOfChannels: number;67 defaultHeight?: number;68}): number;69export declare function getPixelRatio(devicePixelRatio?: number): number;70export declare function shouldRenderBars(options: WaveSurferOptions): boolean;71export declare function resolveColorValue(color: WaveSurferOptions['waveColor'], devicePixelRatio: number, canvasHeight?: number): string | CanvasGradient;72export declare function calculateWaveformLayout({ duration, minPxPerSec, parentWidth, fillParent, pixelRatio, }: {73 duration: number;74 minPxPerSec?: number;75 parentWidth: number;76 fillParent?: boolean;77 pixelRatio: number;78}): {79 scrollWidth: number;80 isScrollable: boolean;81 useParentWidth: boolean;82 width: number;83};84export declare function clampWidthToBarGrid(width: number, options: WaveSurferOptions): number;85export declare function calculateSingleCanvasWidth({ clientWidth, totalWidth, options, }: {86 clientWidth: number;87 totalWidth: number;88 options: WaveSurferOptions;89}): number;90export declare function sliceChannelData({ channelData, offset, clampedWidth, totalWidth, }: {91 channelData: ChannelData;92 offset: number;93 clampedWidth: number;94 totalWidth: number;95}): ChannelData;96export declare function shouldClearCanvases(currentNodeCount: number): boolean;97export declare function getLazyRenderRange({ scrollLeft, totalWidth, numCanvases, }: {98 scrollLeft: number;99 totalWidth: number;100 numCanvases: number;101}): number[];102export declare function calculateVerticalScale({ channelData, barHeight, normalize, maxPeak, }: {103 channelData: ChannelData;104 barHeight?: WaveSurferOptions['barHeight'];105 normalize?: WaveSurferOptions['normalize'];106 maxPeak?: WaveSurferOptions['maxPeak'];107}): number;108export declare function calculateLinePaths({ channelData, width, height, vScale, }: {109 channelData: ChannelData;110 width: number;111 height: number;112 vScale: number;113}): LinePath[];114/**115 * @deprecated Use calculateScrollPercentages from './reactive/scroll-stream.js' instead.116 * This function is maintained for backward compatibility but will be removed in a future version.117 */118export declare function calculateScrollPercentages({ scrollLeft, clientWidth, scrollWidth, }: {119 scrollLeft: number;120 clientWidth: number;121 scrollWidth: number;122}): {123 startX: number;124 endX: number;125};126export declare function roundToHalfAwayFromZero(value: number): number;127 