import '../../../assert/js/assert.js';
import '../../../globals.js';
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 ToggleButtonModelOptions = SelfOptions & ButtonModelOptions;
export default class ToggleButtonModel<T> extends ButtonModel {
    readonly valueProperty: TProperty<T>;
    readonly valueOff: T;
    readonly valueOn: T;
    private readonly toggledEmitter;
    private readonly disposeToggleButtonModel;
    /**
     * @param valueOff - value when the button is in the off state
     * @param valueOn - value when the button is in the on state
     * @param property - axon Property that can be either valueOff or valueOn.
     * @param [providedOptions]
     */
    constructor(valueOff: T, valueOn: T, property: TProperty<T>, providedOptions?: ToggleButtonModelOptions);
    dispose(): void;
    private toggle;
}
export {};
//# sourceMappingURL=ToggleButtonModel.d.ts.map