import '../../../assert/js/assert.js';
import '../../../globals.js';
/**
 * Handles creation of an SVG stop element, and handles keeping it updated based on property/color changes.
 *
 * @author Jonathan Olson <jonathan.olson@colorado.edu>
 */
import Pool, { TPoolable } from '../../../phet-core/js/Pool.js';
import WithoutNull from '../../../phet-core/js/types/WithoutNull.js';
import { ActiveSVGGradient, TColor } from '../imports.js';
export type ActiveSVGGradientStop = WithoutNull<SVGGradientStop, 'svgGradient'>;
declare class SVGGradientStop implements TPoolable {
    svgElement: SVGStopElement;
    svgGradient: ActiveSVGGradient | null;
    color: TColor;
    ratio: number;
    private dirty;
    private propertyListener;
    private colorListener;
    private lastColor;
    constructor(svgGradient: ActiveSVGGradient, ratio: number, color: TColor);
    isActiveSVGGradientStop(): this is ActiveSVGGradientStop;
    initialize(svgGradient: ActiveSVGGradient, ratio: number, color: TColor): this;
    /**
     * Called when our color is a Property and it changes.
     */
    private onPropertyChange;
    /**
     * Should be called when the color stop's value may have changed.
     */
    private markDirty;
    /**
     * Updates the color stop to whatever the current color should be.
     */
    update(): void;
    /**
     * Disposes, so that it can be reused from the pool.
     */
    dispose(): void;
    freeToPool(): void;
    static readonly pool: Pool<typeof SVGGradientStop>;
}
export default SVGGradientStop;
//# sourceMappingURL=SVGGradientStop.d.ts.map