import '../../../assert/js/assert.js';
import '../../../globals.js';
/**
 * Model for a momentary button: on when pressed, off when released.
 *
 * @author Chris Malley (PixelZoom, Inc.)
 */
import TProperty from '../../../axon/js/TProperty.js';
import { EmptySelfOptions } from '../../../phet-core/js/optionize.js';
import ButtonModel, { ButtonModelOptions } from './ButtonModel.js';
type SelfOptions = EmptySelfOptions;
export type MomentaryButtonModelOptions = SelfOptions & ButtonModelOptions;
export default class MomentaryButtonModel<T> extends ButtonModel {
    private readonly disposeMomentaryButtonModel;
    readonly valueProperty: TProperty<T>;
    readonly valueOn: T;
    /**
     * @param valueOff - value when the button is in the off state
     * @param valueOn - value when the button is in the on state
     * @param valueProperty
     * @param [providedOptions]
     */
    constructor(valueOff: T, valueOn: T, valueProperty: TProperty<T>, providedOptions?: MomentaryButtonModelOptions);
    dispose(): void;
    /**
     * Produces a sound whenever this button changes the value.
     */
    private setValue;
}
export {};
//# sourceMappingURL=MomentaryButtonModel.d.ts.map