import '../../assert/js/assert.js';
import '../../globals.js';
import TProperty from '../../axon/js/TProperty.js';
import StrictOmit from '../../phet-core/js/types/StrictOmit.js';
import { Node, NodeOptions, TColor, WidthSizableOptions } from '../../scenery/js/imports.js';
import TSoundPlayer from '../../tambo/js/TSoundPlayer.js';
import { CarouselOptions } from './Carousel.js';
import { ComboBoxItem } from './ComboBox.js';
import { ComboBoxButtonOptions } from './ComboBoxButton.js';
import { PageControlOptions } from './PageControl.js';
type SelfOptions = {
    itemNodeOptions?: CarouselItemNodeOptions;
    carouselOptions?: CarouselOptions;
    pageControlOptions?: StrictOmit<PageControlOptions, 'orientation'>;
    buttonOptions?: StrictOmit<ComboBoxButtonOptions, 'content' | 'listener'>;
    openedSoundPlayer?: TSoundPlayer;
    closedSoundPlayer?: TSoundPlayer;
};
type ParentOptions = NodeOptions & WidthSizableOptions;
export type CarouselComboBoxOptions = SelfOptions & StrictOmit<ParentOptions, 'children'>;
declare const CarouselComboBox_base: typeof Node & import("../../phet-core/js/types/Constructor.js").default<import("../../scenery/js/imports.js").TWidthSizable>;
export default class CarouselComboBox<T> extends CarouselComboBox_base {
    private readonly disposeCarouselComboBox;
    /**
     * @param property - the Property that is set when an item is selected
     * @param comboBoxItems - the items that appear in the carousel
     * @param providedOptions
     */
    constructor(property: TProperty<T>, comboBoxItems: ComboBoxItem<T>[], providedOptions?: CarouselComboBoxOptions);
    dispose(): void;
}
type CarouselItemNodeSelfOptions = {
    align?: 'left' | 'right' | 'center';
    xMargin?: number;
    yMargin?: number;
    overColor?: TColor;
    selectedColor?: TColor;
};
type CarouselItemNodeOptions = CarouselItemNodeSelfOptions & StrictOmit<NodeOptions, 'children'>;
export {};
//# sourceMappingURL=CarouselComboBox.d.ts.map