/**
 * vectorSvgFilters.ts — SVG Filter system for VectorEditor
 *
 * Supports:
 * - Blur (Gaussian blur)
 * - Shadow (Drop shadow)
 * - Glow (Outer glow)
 * - Bevel (Inner bevel effect)
 * - Emboss (Embossed effect)
 * - Color matrix (hue, saturation, brightness adjustments)
 * - Morphology (erode/dilate for outline effects)
 * - Noise (turbulence/fractal noise)
 * - Displacement (ripple, wave effects)
 */
export type SvgFilterType = 'blur' | 'shadow' | 'glow' | 'bevel' | 'emboss' | 'colorMatrix' | 'erode' | 'dilate' | 'noise' | 'displacement' | 'invert' | 'saturate' | 'sepia' | 'grayscale';
export interface SvgFilterBase {
    id: string;
    type: SvgFilterType;
    enabled: boolean;
    order: number;
}
export interface BlurFilter extends SvgFilterBase {
    type: 'blur';
    radius: number;
}
export interface ShadowFilter extends SvgFilterBase {
    type: 'shadow';
    offsetX: number;
    offsetY: number;
    blur: number;
    color: string;
    opacity: number;
    inset: boolean;
}
export interface GlowFilter extends SvgFilterBase {
    type: 'glow';
    radius: number;
    color: string;
    intensity: number;
}
export interface BevelFilter extends SvgFilterBase {
    type: 'bevel';
    depth: number;
    angle: number;
    highlightColor: string;
    shadowColor: string;
    softness: number;
}
export interface EmbossFilter extends SvgFilterBase {
    type: 'emboss';
    strength: number;
    angle: number;
    elevation: number;
}
export interface ColorMatrixFilter extends SvgFilterBase {
    type: 'colorMatrix';
    hue: number;
    saturation: number;
    brightness: number;
    contrast: number;
}
export interface MorphologyFilter extends SvgFilterBase {
    type: 'erode' | 'dilate';
    radius: number;
}
export interface NoiseFilter extends SvgFilterBase {
    type: 'noise';
    baseFrequency: number;
    numOctaves: number;
    seed: number;
    turbulence: boolean;
    opacity: number;
}
export interface DisplacementFilter extends SvgFilterBase {
    type: 'displacement';
    scale: number;
    xChannel: 'R' | 'G' | 'B' | 'A';
    yChannel: 'R' | 'G' | 'B' | 'A';
    frequency: number;
}
export interface InvertFilter extends SvgFilterBase {
    type: 'invert';
    amount: number;
}
export interface SaturateFilter extends SvgFilterBase {
    type: 'saturate';
    amount: number;
}
export interface SepiaFilter extends SvgFilterBase {
    type: 'sepia';
    amount: number;
}
export interface GrayscaleFilter extends SvgFilterBase {
    type: 'grayscale';
    amount: number;
}
export type SvgFilter = BlurFilter | ShadowFilter | GlowFilter | BevelFilter | EmbossFilter | ColorMatrixFilter | MorphologyFilter | NoiseFilter | DisplacementFilter | InvertFilter | SaturateFilter | SepiaFilter | GrayscaleFilter;
export interface FilterPreset {
    id: string;
    name: string;
    category: 'shadows' | 'glows' | 'artistic' | 'color' | 'distortion';
    filters: SvgFilter[];
}
export declare const FILTER_PRESETS: FilterPreset[];
export declare const generateFilterId: () => string;
export declare function createDefaultFilter(type: SvgFilterType): SvgFilter;
/**
 * Generate SVG filter primitive elements for a filter
 */
export declare function generateFilterPrimitive(filter: SvgFilter, inputName: string): {
    elements: string[];
    outputName: string;
};
/**
 * Generate complete SVG filter element for a shape
 */
export declare function generateSvgFilter(shapeId: string, filters: SvgFilter[]): string;
/**
 * Get filter URL reference for a shape
 */
export declare function getFilterUrl(shapeId: string, filters: SvgFilter[]): string;
/**
 * Clone filters array
 */
export declare function cloneFilters(filters: SvgFilter[]): SvgFilter[];
/**
 * Filter type metadata for UI
 */
export declare const FILTER_TYPE_INFO: Record<SvgFilterType, {
    name: string;
    icon: string;
    description: string;
    category: 'effects' | 'color' | 'distortion';
}>;
