/**
 * vectorPatternFills — SVG Pattern fill system for VectorEditor
 *
 * Features:
 * - Built-in pattern presets (stripes, dots, checkers, etc.)
 * - Custom pattern creation from shapes
 * - Pattern transformations (scale, rotate, offset)
 * - Image-based patterns
 * - Export as SVG <pattern> definitions
 */
export type PatternType = 'stripes-h' | 'stripes-v' | 'stripes-d' | 'stripes-d-rev' | 'dots' | 'dots-offset' | 'checker' | 'grid' | 'grid-dots' | 'hexagons' | 'triangles' | 'zigzag' | 'waves' | 'crosses' | 'diamonds' | 'custom';
export interface PatternFill {
    /** Pattern type */
    type: PatternType;
    /** Unique ID for SVG reference */
    id: string;
    /** Pattern name */
    name: string;
    /** Primary color (foreground) */
    foreground: string;
    /** Secondary color (background) */
    background: string;
    /** Pattern cell width */
    width: number;
    /** Pattern cell height */
    height: number;
    /** Rotation angle (degrees) */
    rotation: number;
    /** Scale factor */
    scale: number;
    /** X offset */
    offsetX: number;
    /** Y offset */
    offsetY: number;
    /** Stroke width for line-based patterns */
    strokeWidth: number;
    /** Opacity (0-1) */
    opacity: number;
    /** Custom SVG content (for custom type) */
    customSvg?: string;
    /** Image URL (for image-based patterns) */
    imageUrl?: string;
}
export declare const DEFAULT_PATTERN: PatternFill;
export interface PatternPreset {
    type: PatternType;
    name: string;
    icon: string;
    defaultWidth: number;
    defaultHeight: number;
    defaultStrokeWidth: number;
}
export declare const PATTERN_PRESETS: PatternPreset[];
export declare const generatePatternId: () => string;
/**
 * Generate SVG pattern content for a given pattern type
 */
export declare function generatePatternContent(pattern: PatternFill): string;
/**
 * Generate complete SVG <pattern> element
 */
export declare function generateSvgPattern(pattern: PatternFill): string;
/**
 * Get URL reference for pattern
 */
export declare function getPatternUrl(pattern: PatternFill): string;
/**
 * Create a new pattern with default values
 */
export declare function createPattern(type: PatternType): PatternFill;
/**
 * Clone a pattern with new ID
 */
export declare function clonePattern(pattern: PatternFill): PatternFill;
/**
 * Create pattern from image file
 */
export declare function createImagePattern(imageUrl: string, width: number, height: number): PatternFill;
/**
 * Load image and create pattern from it
 */
export declare function loadImagePattern(file: File): Promise<PatternFill>;
/**
 * Render pattern preview to canvas
 */
export declare function renderPatternPreview(pattern: PatternFill, width: number, height: number): HTMLCanvasElement;
/**
 * Generate pattern preview as data URL
 */
export declare function getPatternPreviewDataUrl(pattern: PatternFill, width?: number, height?: number): Promise<string>;
export interface PatternLibrary {
    patterns: PatternFill[];
    add: (pattern: PatternFill) => void;
    remove: (id: string) => void;
    get: (id: string) => PatternFill | undefined;
    update: (id: string, updates: Partial<PatternFill>) => void;
    toJSON: () => string;
    fromJSON: (json: string) => void;
}
export declare function createPatternLibrary(initial?: PatternFill[]): PatternLibrary;
export default generateSvgPattern;
