import '../../chipper/js/browser/initialize-globals.js';
import '../../assert/js/assert.js';
import '../../globals.js';
/**
 * TimeControlNode provides a UI for controlling time.  It includes a play/pause button, step-forward button,
 * optional step-backward button, and optional radio buttons for time speed. Various layouts are supported via options.
 *
 * @author Denzell Barnett (PhET Interactive Simulations)
 * @author Jonathan Olson <jonathan.olson@colorado.edu>
 * @author Chris Malley (PixelZoom, Inc.)
 * @author Jesse Greenberg (PhET Interactive Simulations)
 */
import EnumerationProperty from '../../axon/js/EnumerationProperty.js';
import Property from '../../axon/js/Property.js';
import StrictOmit from '../../phet-core/js/types/StrictOmit.js';
import { HorizontalLayoutAlign, Node, NodeOptions, VerticalLayoutAlign } from '../../scenery/js/imports.js';
import RoundPushButton from '../../sun/js/buttons/RoundPushButton.js';
import PlayPauseStepButtonGroup, { PlayPauseStepButtonGroupOptions } from './buttons/PlayPauseStepButtonGroup.js';
import TimeSpeed from './TimeSpeed.js';
import { TimeSpeedRadioButtonGroupOptions } from './TimeSpeedRadioButtonGroup.js';
type SelfOptions = {
    timeSpeedProperty?: EnumerationProperty<TimeSpeed> | null;
    timeSpeeds?: TimeSpeed[];
    speedRadioButtonGroupPlacement?: 'left' | 'right' | 'top' | 'bottom';
    playPauseStepButtonOptions?: PlayPauseStepButtonGroupOptions;
    speedRadioButtonGroupOptions?: StrictOmit<TimeSpeedRadioButtonGroupOptions, 'tandem'>;
    flowBoxAlign?: HorizontalLayoutAlign | VerticalLayoutAlign;
    flowBoxSpacing?: number;
};
export type TimeControlNodeOptions = SelfOptions & StrictOmit<NodeOptions, 'children'>;
export default class TimeControlNode extends Node {
    protected readonly pushButtonGroup: PlayPauseStepButtonGroup;
    private readonly speedRadioButtonGroup;
    constructor(isPlayingProperty: Property<boolean>, providedOptions?: TimeControlNodeOptions);
    /**
     * Add a push button to the TimeControlNode.
     */
    addPushButton(pushButton: RoundPushButton, index: number): void;
}
export {};
//# sourceMappingURL=TimeControlNode.d.ts.map