UNPKG

react-audio-wave-with-segments

Version:
99 lines (88 loc) 2.73 kB
import type { CSSProperties } from 'react'; import { ForwardRefExoticComponent } from 'react'; import { MemoExoticComponent } from 'react'; import type { PropsWithChildren } from 'react'; import type { ReactElement } from 'react'; import { ReactNode } from 'react'; import { RefAttributes } from 'react'; export declare interface CursorTimeConfig { zIndex?: number; customShowTimeStyle?: CSSProperties; } export declare interface InstanceMethodType { seekTo?: (offsetTime: number, play?: boolean) => void; destroy?: () => void; play?: () => void; pause?: () => void; volume?: (volume: number) => void; playbackRate?: (playbackRate: number) => void; } declare enum LoadStateEnum { "EMPTY" = -1, "INIT" = 0, "LOADING" = 1, "SUCCESS" = 2, "ERROR" = 3 } export { LoadStateEnum } export { LoadStateEnum as LoadStateEnumType } export declare const ReactAudioWave: MemoExoticComponent<ForwardRefExoticComponent<ReactAudioWaveProps & { children?: ReactNode; } & RefAttributes<InstanceMethodType>>>; export declare interface ReactAudioWaveProps { waveHeight: number; colors: Wavecolors; audioSrc: string; placeholder: PropsWithChildren<any>; emptyElement?: ReactElement; barGap?: number; barWidth?: number; progressStyle?: CSSProperties; supportPlaybackRate?: boolean; mono?: boolean; progressCursorVisible?: boolean; cursorVisible?: boolean; cursorTimeConfig?: CursorTimeConfig; className?: string; segments?: Array<Segment>; timeFormat?: (seconds: number) => string; onChangeLoadState?: (state: LoadStateEnum, duration?: number) => void; onCurrentTimeChange?: (current: number) => void; onWaveSizeChange?: (size: Size) => void; onPlayEnded?: () => void; onWaveSeekClick?: (a: { offsetTime: number; }) => void; renderErrorElement?: (error?: string) => ReactElement; } export declare interface Segment { id: string; children?: ReactElement; position: number; duration: number; title: number; style: CSSProperties; onClick: (segment: Segment) => void; } export declare interface SegmentTimeProps { children?: ReactElement; className?: string; pixelRatio: number; segment: { duration: number; position: number; }; segmentStyle?: CSSProperties; onClick: (value: unknown) => void; } export declare type Size = { width: number; height: number; }; export declare interface Wavecolors { progressColor: string; waveColor: string; cursorColor?: string; waveBackground?: string; } export { }