/**
 * Base class that defines a settable Property that determines whether the Object is enabled or not. This includes
 * support for phet-io instrumentation and a variety of options to customize the enabled Property as well as how it is
 * created.
 *
 * @author Michael Kauzmann (PhET Interactive Simulations)
 * @author Sam Reid (PhET Interactive Simulations)
 */
import '../../globals.js';
import { type PhetioObjectOptions } from '../../tandem/js/PhetioObject.js';
import Disposable, { type DisposableOptions } from './Disposable.js';
import { type EnabledPropertyOptions } from './EnabledProperty.js';
import type TProperty from './TProperty.js';
import type TReadOnlyProperty from './TReadOnlyProperty.js';
type SelfOptions = {
    enabledProperty?: TReadOnlyProperty<boolean> | null;
    enabled?: boolean;
    enabledPropertyOptions?: EnabledPropertyOptions | null;
    phetioEnabledPropertyInstrumented?: boolean;
} & Pick<PhetioObjectOptions, 'tandem'>;
export type EnabledComponentOptions = SelfOptions & DisposableOptions;
export default class EnabledComponent extends Disposable {
    enabledProperty: TProperty<boolean>;
    private disposeEnabledComponent;
    constructor(providedOptions?: EnabledComponentOptions);
    private setEnabled;
    set enabled(value: boolean);
    get enabled(): boolean;
    isEnabled(): boolean;
    dispose(): void;
}
export {};
//# sourceMappingURL=EnabledComponent.d.ts.map