import '../../../assert/js/assert.js';
import '../../../globals.js';
import WithoutNull from '../../../phet-core/js/types/WithoutNull.js';
import { Gradient, SVGBlock, SVGGradientStop } from '../imports.js';
export type ActiveSVGGradient = WithoutNull<SVGGradient, 'svgBlock' | 'gradient'>;
export default abstract class SVGGradient {
    svgBlock: SVGBlock | null;
    gradient: Gradient | null;
    stops: SVGGradientStop[];
    definition: SVGGradientElement;
    private dirty;
    constructor(svgBlock: SVGBlock, gradient: Gradient);
    isActiveSVGGradient(): this is ActiveSVGGradient;
    initialize(svgBlock: SVGBlock, gradient: Gradient): void;
    /**
     * Creates the gradient-type-specific definition.
     */
    protected abstract createDefinition(): SVGGradientElement;
    /**
     * Called from SVGGradientStop when a stop needs to change the actual color.
     */
    markDirty(): void;
    /**
     * Called from SVGBlock when we need to update our color stops.
     */
    update(): void;
    /**
     * Disposes, so that it can be reused from the pool.
     */
    dispose(): void;
    abstract freeToPool(): void;
}
//# sourceMappingURL=SVGGradient.d.ts.map