import { VGMConverter, ChipInfo } from "./vgm-converter";
import { VGMCommand, VGMWriteDataCommand } from "vgm-parser";
import VGMWriteDataCommandBuffer from "./vgm-write-data-buffer";
import { OPMNote } from "./opm_freq";
import { AY8910ToOPMConverter } from "./ay8910-to-opm-coverter";
export declare abstract class OPNToOPMConverter extends VGMConverter {
    opts: any;
    _regs: Uint8Array[];
    _buf: VGMWriteDataCommandBuffer;
    _clockRatio: number;
    _lrCache: Array<number>;
    _clockDiv: number;
    constructor(from: ChipInfo, to: ChipInfo, opts: any);
    _y(addr: number, data: number, optimize?: boolean): void;
    _fnumToFreq(fnum: number, blk: number): number;
    _fnumToNote(fnum: number, blk: number): OPMNote;
    convertFM(cmd: VGMWriteDataCommand): VGMCommand[];
    getRLFlags(ch: number): number;
    getInitialCommands(): Array<VGMCommand>;
    convertCommand(cmd: VGMCommand): Array<VGMCommand>;
}
export declare class YM2612ToOPMConverter extends OPNToOPMConverter {
    constructor(from: ChipInfo, to: ChipInfo, opts: any);
}
export declare class YM2203ToOPMConverter extends OPNToOPMConverter {
    constructor(from: ChipInfo, to: ChipInfo, opts: any);
    _ssgConverter: AY8910ToOPMConverter;
    getInitialCommands(): VGMCommand[];
    convertCommand(cmd: VGMCommand): Array<VGMCommand>;
}
export declare class YM2608ToOPMConverter extends OPNToOPMConverter {
    constructor(from: ChipInfo, to: ChipInfo, opts: any);
}
