/// <reference path="../../pxtlib.d.ts" />
import * as Blockly from "blockly";
import { FieldBase } from "./field_base";
import { FieldCustomOptions } from "./field_utils";
export interface FieldSoundEffectParams extends FieldCustomOptions {
    durationInputName: string;
    startFrequencyInputName: string;
    endFrequencyInputName: string;
    startVolumeInputName: string;
    endVolumeInputName: string;
    waveFieldName: string;
    interpolationFieldName: string;
    effectFieldName: string;
    useMixerSynthesizer: any;
}
export declare class FieldSoundEffect extends FieldBase<FieldSoundEffectParams> {
    protected mostRecentValue: pxt.assets.Sound;
    protected drawnSound: pxt.assets.Sound;
    protected workspace: Blockly.Workspace;
    protected registeredChangeListener: boolean;
    protected onInit(): void;
    protected onDispose(): void;
    protected onValueChanged(newValue: string): string;
    redrawPreview(): void;
    showEditor_(e: Event): void;
    render_(): void;
    getFieldDescription(): string;
    protected updateSiblingBlocks(sound: pxt.assets.Sound): void;
    protected setNumberInputValue(name: string, value: number): void;
    protected getNumberInputValue(name: string, defaultValue: number): number;
    protected fireNumberInputUpdate(name: string, oldValue: number): void;
    protected setFieldDropdownValue(name: string, value: string): void;
    protected getFieldDropdownValue(name: string): string;
    protected fireFieldDropdownUpdate(name: string, oldValue: string): void;
    protected readCurrentSound(): pxt.assets.Sound;
    protected readBlockDataSound(): pxt.assets.Sound;
    protected onWorkspaceChange: (ev: Blockly.Events.BlockChange) => void;
}
