import '../../chipper/js/browser/initialize-globals.js';
import '../../assert/js/assert.js';
import '../../globals.js';
import { EmptySelfOptions } from '../../phet-core/js/optionize.js';
import WithRequired from '../../phet-core/js/types/WithRequired.js';
import { Node, NodeOptions } from '../../scenery/js/imports.js';
import MenuItem from '../../sun/js/MenuItem.js';
import { PopupableOptions } from '../../sun/js/Popupable.js';
import IOType from '../../tandem/js/types/IOType.js';
import Sim from './Sim.js';
type SelfOptions = EmptySelfOptions;
type ParentOptions = PopupableOptions & WithRequired<NodeOptions, 'tandem'>;
type PhetMenuOptions = SelfOptions & ParentOptions;
declare const PhetMenu_base: typeof Node & import("../../phet-core/js/types/Constructor.js").default<{
    readonly layoutBounds: import("../../dot.js").Bounds2 | null;
    readonly popupParent: Node;
    readonly isShowingProperty: import("../../axon.js").Property<boolean>;
    layout(bounds: import("../../dot.js").Bounds2): void;
    shouldShowPopup(): boolean;
    show(): void;
    hide(): void;
    readonly focusOnHideNode: Node | null;
}>;
declare class PhetMenu extends PhetMenu_base {
    readonly items: MenuItem[];
    private readonly disposePhetMenu;
    constructor(sim: Sim, providedOptions?: PhetMenuOptions);
    /**
     * (joist-internal)
     */
    dispose(): void;
    static PhetMenuIO: IOType<any, any, any>;
}
export default PhetMenu;
//# sourceMappingURL=PhetMenu.d.ts.map