import { VGMConverter, ChipInfo } from "./vgm-converter";
import { VGMCommand, VGMWriteDataCommand } from "vgm-parser";
import VGMWriteDataCommandBuffer from "./vgm-write-data-buffer";
type _MixResolver = "tone" | "noise" | "mix";
type _MixChannel = "none" | 0 | 1 | 2;
type _PeriodicNoiseAssignment = "none" | "tone" | "noise" | "mix" | "env.tri" | "env.saw";
export declare class SN76489ToAY8910Converter extends VGMConverter {
    _buf: VGMWriteDataCommandBuffer;
    _freq: Uint16Array;
    _ch: number;
    _type: number;
    _atts: number[];
    _mixChannel: number;
    _mixResolver: _MixResolver;
    _periodicNoiseAssignment: _PeriodicNoiseAssignment;
    _periodicNoisePitchShift: number;
    _periodicNoiseAttenuation: number;
    _whiteNoiseAttenuation: number;
    _periodic: boolean;
    _noiseFreq: number;
    _noisePitchMap: number[];
    _channelAttenuationMap: number[];
    constructor(from: ChipInfo, to: ChipInfo, opts: {
        mixChannel?: _MixChannel;
        mixResolver?: _MixResolver;
        periodicNoiseAssignment?: _PeriodicNoiseAssignment;
        periodicNoisePitchShift?: number;
        noisePitchMap?: number[];
        channelAttenuationMap?: number[];
        whiteNoiseAttenuation?: number;
        periodicNoiseAttenuation?: number;
    });
    _y(a: number, d: number, optimize?: boolean): void;
    getInitialCommands(): Array<VGMCommand>;
    _updateSharedChannel(): void;
    _updateAttenuation(ch: number, rawAtt: number): void;
    _updateNoise(data: number): void;
    _updateFreq(ch: number, optimize?: boolean): void;
    _convert(cmd: VGMWriteDataCommand): Array<VGMCommand>;
    convertCommand(cmd: VGMCommand): Array<VGMCommand>;
    getLoopCommands(): Array<VGMCommand>;
}
export {};
