/**
 * Gradient types and utilities for VectorEditor
 */
import type { VShape } from "./vectorEditorTypes";
export interface GradientStop {
    offset: number;
    color: string;
    opacity?: number;
}
export interface LinearGradient {
    type: "linear";
    id: string;
    angle: number;
    stops: GradientStop[];
}
export interface RadialGradient {
    type: "radial";
    id: string;
    cx: number;
    cy: number;
    r: number;
    fx?: number;
    fy?: number;
    stops: GradientStop[];
}
export interface ConicGradient {
    type: "conic";
    id: string;
    cx: number;
    cy: number;
    angle: number;
    stops: GradientStop[];
}
export type Gradient = LinearGradient | RadialGradient | ConicGradient;
export interface GradientFill {
    gradient: Gradient;
    scaleX?: number;
    scaleY?: number;
    rotate?: number;
    translateX?: number;
    translateY?: number;
}
export declare const gradientId: () => string;
export declare const PRESET_GRADIENTS: Gradient[];
export declare function gradientToSVGDef(gradient: Gradient): string;
export declare function gradientToFillRef(gradient: Gradient): string;
export declare function gradientToCSS(gradient: Gradient): string;
export declare function cloneGradient(gradient: Gradient): Gradient;
export declare function createLinearGradient(colors: string[], angle?: number): LinearGradient;
export declare function createRadialGradient(colors: string[], cx?: number, cy?: number, r?: number): RadialGradient;
export declare function addGradientStop(gradient: Gradient, offset: number, color: string): Gradient;
export declare function removeGradientStop(gradient: Gradient, index: number): Gradient;
export declare function updateGradientStop(gradient: Gradient, index: number, update: Partial<GradientStop>): Gradient;
export declare function rotateLinearGradient(gradient: LinearGradient, angle: number): LinearGradient;
export declare function reverseGradient(gradient: Gradient): Gradient;
export interface GradientShape extends VShape {
    fillGradient?: Gradient;
    strokeGradient?: Gradient;
}
export declare function applyFillGradient(shape: VShape, gradient: Gradient): GradientShape;
export declare function applyStrokeGradient(shape: VShape, gradient: Gradient): GradientShape;
export declare function removeFillGradient(shape: GradientShape, solidColor: string): GradientShape;
export declare function removeStrokeGradient(shape: GradientShape, solidColor: string): GradientShape;
export declare function collectGradientDefs(shapes: VShape[]): string;
