import { Note, PianoRollTheme, KeyboardConfig, AnimationConfig, AudioEngine, PlaybackController } from '../types'; export interface PianoRollProps { /** * Array of notes to display and play */ notes: Note[]; /** * Theme customization */ theme?: Partial; /** * Keyboard configuration */ keyboardConfig?: Partial; /** * Animation configuration */ animationConfig?: Partial; /** * Custom audio engine (optional) * If not provided, uses default piano engine or MusyngKite engine if instrument is specified */ audioEngine?: AudioEngine; /** * Instrument selection for MusyngKite SoundFont * Can be a MIDI program number (0-127) or instrument name (e.g., 'acoustic_grand_piano', 'trumpet') * If specified, uses MusyngKiteAudioEngine instead of default PianoAudioEngine */ instrument?: string | number; /** * Custom SoundFont URL (optional) * Only used when instrument is specified * Default: Uses built-in MusyngKite SoundFont */ soundfontUrl?: string; /** * Width of the component (auto-calculated if not provided) */ width?: number; /** * Height of the note roll area */ rollHeight?: number; /** * Callback when playback state changes */ onStateChange?: (state: 'playing' | 'paused' | 'stopped') => void; /** * Callback when playback time changes */ onTimeUpdate?: (time: number) => void; /** * Allow playback to continue in background tabs */ allowBackgroundPlayback?: boolean; } export interface PianoRollHandle extends PlaybackController { /** * Get the current playback time */ currentTime: number; } /** * Main PianoRoll component * Combines keyboard, note visualization, and audio playback */ export declare const PianoRoll: import('react').ForwardRefExoticComponent>; //# sourceMappingURL=PianoRoll.d.ts.map