/**
 * Light bulb, made to 'glow' by modulating opacity of the 'on' image.
 *
 * @author Chris Malley (PixelZoom, Inc.)
 */
import '../../globals.js';
import '../../chipper/js/browser/initialize-globals.js';
import TReadOnlyProperty from '../../axon/js/TReadOnlyProperty.js';
import StrictOmit from '../../phet-core/js/types/StrictOmit.js';
import { ImageableImage } from '../../scenery/js/nodes/Imageable.js';
import Node, { NodeOptions } from '../../scenery/js/nodes/Node.js';
import { LightRaysNodeOptions } from './LightRaysNode.js';
type SelfOptions = {
    bulbImageScale?: number;
    lightRaysNodeOptions?: LightRaysNodeOptions;
    lightBulbOnImage?: ImageableImage;
    lightBulbOffImage?: ImageableImage;
};
export type LightBulbNodeOptions = SelfOptions & StrictOmit<NodeOptions, 'children'>;
export default class LightBulbNode extends Node {
    private readonly onNode;
    private readonly raysNode;
    private readonly brightnessProperty;
    private readonly disposeLightBulbNode;
    /**
     * @param brightnessProperty - brightness of the bulb, 0 (off) to 1 (full brightness)
     * @param [providedOptions]
     */
    constructor(brightnessProperty: TReadOnlyProperty<number>, providedOptions?: LightBulbNodeOptions);
    dispose(): void;
    /**
     * Updates the bulb. For performance, this is a no-op when the bulb is not visible.
     */
    private update;
}
export {};
