import '../../../assert/js/assert.js';
import '../../../globals.js';
/**
 * The panels that contain preferences controls. There is one panel for every tab, and it is shown when the
 * corresponding tab is selected.
 *
 * Once the dialog is created it is never destroyed so listeners do not need to be disposed.
 *
 * @author Jesse Greenberg (PhET Interactive Simulations)
 */
import TReadOnlyProperty from '../../../axon/js/TReadOnlyProperty.js';
import { EmptySelfOptions } from '../../../phet-core/js/optionize.js';
import PickRequired from '../../../phet-core/js/types/PickRequired.js';
import { Node, NodeOptions } from '../../../scenery/js/imports.js';
import PreferencesModel from './PreferencesModel.js';
import PreferencesTabs from './PreferencesTabs.js';
import PreferencesType from './PreferencesType.js';
type SelfOptions = EmptySelfOptions;
type PreferencesPanelsOptions = SelfOptions & NodeOptions & PickRequired<NodeOptions, 'tandem'>;
declare class PreferencesPanels extends Node {
    private readonly content;
    private readonly selectedTabProperty;
    /**
     * @param preferencesModel
     * @param supportedTabs - list of Tabs supported by this Dialog
     * @param selectedTabProperty
     * @param preferencesTabs
     * @param [providedOptions]
     */
    constructor(preferencesModel: PreferencesModel, supportedTabs: PreferencesType[], selectedTabProperty: TReadOnlyProperty<PreferencesType>, preferencesTabs: PreferencesTabs, providedOptions?: PreferencesPanelsOptions);
    /**
     * Returns the visible content panel Node for the selected PreferencesType.
     * NOTE: Loop shouldn't be necessary, create a map that goes from PreferencesType -> content.
     */
    private getSelectedContent;
    /**
     * Focus the selected panel. The panel should not be focusable until this is requested, so it is set to be
     * focusable before the focus() call. When focus is removed from the panel, it should become non-focusable
     * again. That is handled in PreferencesPanelContainer class.
     */
    focusSelectedPanel(): void;
    /**
     * @param node - the potential content for the selected panel that is focusable
     * @returns true if the provided node is the currently selected panel
     */
    isFocusableSelectedContent(node: Node): boolean;
}
export default PreferencesPanels;
//# sourceMappingURL=PreferencesPanels.d.ts.map