import { type Filestore } from '../filestore';
import type { FileData } from '../file-data';
/**
 * A single MIDI file object.
 */
export declare class MidiFile {
    readonly fileData: FileData;
    constructor(fileData: FileData);
    /**
     * Writes this unpacked MIDI file to the disk under `./unpacked/midi/{midiFileName}.mid`
     */
    writeToDisk(): Promise<void>;
    get fileId(): number;
}
/**
 * Controls MIDI file storage.
 */
export declare class MusicStore {
    private fileStore;
    constructor(fileStore: Filestore);
    /**
     * Writes all unpacked MIDI files to the disk under `./unpacked/midi/`
     */
    writeToDisk(): Promise<void>;
    /**
     * Decodes the specified midi file.
     * @param nameOrId The name or ID of the midi file.
     * @returns The decoded MidiFile object, or null if the file is not found.
     */
    getMidi(nameOrId: string | number): MidiFile | null;
    /**
     * Decodes all midi files within the filestore.
     * @returns The list of decoded MidiFile objects from the midi store.
     */
    decodeMusicStore(): MidiFile[];
}
