/**
 * RectangularRadioButton is a single rectangular radio button. It typically appears as part of a
 * RectangularRadioButtonGroup, but can be used in other context.
 *
 * @author Aaron Davis (PhET Interactive Simulations)
 */
import '../../../globals.js';
import type TProperty from '../../../axon/js/TProperty.js';
import type StrictOmit from '../../../phet-core/js/types/StrictOmit.js';
import { type TrimParallelDOMOptions } from '../../../scenery/js/accessibility/pdom/ParallelDOM.js';
import type TSoundPlayer from '../../../tambo/js/TSoundPlayer.js';
import RadioButtonInteractionStateProperty from './RadioButtonInteractionStateProperty.js';
import RectangularButton, { type RectangularButtonOptions } from './RectangularButton.js';
import type TButtonAppearanceStrategy from './TButtonAppearanceStrategy.js';
import type TContentAppearanceStrategy from './TContentAppearanceStrategy.js';
type SelfOptions = {
    soundPlayer?: TSoundPlayer | null;
};
export type RectangularRadioButtonOptions = SelfOptions & StrictOmit<TrimParallelDOMOptions<RectangularButtonOptions>, 'enabledProperty' | 'enabled'>;
export default class RectangularRadioButton<T> extends RectangularButton {
    readonly property: TProperty<T>;
    readonly value: T;
    readonly interactionStateProperty: RadioButtonInteractionStateProperty<T>;
    private readonly firedEmitter;
    private readonly disposeRectangularRadioButton;
    /**
     * @param property - axon Property that can take on a set of values, one for each radio button in the group
     * @param value - value when this radio button is selected
     * @param providedOptions
     */
    constructor(property: TProperty<T>, value: T, providedOptions?: RectangularRadioButtonOptions);
    dispose(): void;
    /**
     * fire on up if the button is enabled, public for use in the accessibility tree
     */
    fire(): void;
    /**
     * FlatAppearanceStrategy is a value for RectangularRadioButton options.buttonAppearanceStrategy. It makes radio buttons
     * that look flat, i.e. no shading or highlighting, but that change color on mouseover, press, selected, etc.
     */
    static readonly FlatAppearanceStrategy: TButtonAppearanceStrategy;
    /**
     * ContentAppearanceStrategy is a value for RectangularRadioButton options.contentAppearanceStrategy. It changes
     * their look based on the value of interactionStateProperty.
     */
    static readonly ContentAppearanceStrategy: TContentAppearanceStrategy;
}
export {};
