import { z } from 'zod';
import type { PresetName, WeatherConfig, WeatherOptions } from './types.js';
export declare const presetNames: readonly ["gentle-snow", "winter-magic", "snowstorm", "frosted-glass", "christmas-classic", "christmas-night", "north-pole", "minimal", "playful", "cinematic"];
export declare const configSchema: z.ZodObject<{
    preset: z.ZodEnum<{
        "gentle-snow": "gentle-snow";
        "winter-magic": "winter-magic";
        snowstorm: "snowstorm";
        "frosted-glass": "frosted-glass";
        "christmas-classic": "christmas-classic";
        "christmas-night": "christmas-night";
        "north-pole": "north-pole";
        minimal: "minimal";
        playful: "playful";
        cinematic: "cinematic";
    }>;
    autoStart: z.ZodBoolean;
    seed: z.ZodNumber;
    container: z.ZodOptional<z.ZodCustom<HTMLElement, HTMLElement>>;
    snow: z.ZodObject<{
        enabled: z.ZodBoolean;
        intensity: z.ZodNumber;
        particleCount: z.ZodNumber;
        flakeStyle: z.ZodEnum<{
            soft: "soft";
            dot: "dot";
            crystal: "crystal";
        }>;
        texture: z.ZodOptional<z.ZodNullable<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>>;
        color: z.ZodString;
        minSize: z.ZodNumber;
        maxSize: z.ZodNumber;
        gravity: z.ZodNumber;
        turbulence: z.ZodNumber;
        glow: z.ZodBoolean;
        parallax: z.ZodBoolean;
        wind: z.ZodObject<{
            base: z.ZodNumber;
            gusts: z.ZodBoolean;
            variability: z.ZodNumber;
        }, z.core.$strict>;
        accumulation: z.ZodObject<{
            enabled: z.ZodBoolean;
            maxDepth: z.ZodNumber;
            growthRate: z.ZodNumber;
            softness: z.ZodNumber;
            sliding: z.ZodBoolean;
            transferToLowerSurfaces: z.ZodBoolean;
            meltRate: z.ZodNumber;
        }, z.core.$strict>;
    }, z.core.$strict>;
    dom: z.ZodObject<{
        detection: z.ZodEnum<{
            auto: "auto";
            explicit: "explicit";
        }>;
        respectLayers: z.ZodBoolean;
        observeMutations: z.ZodBoolean;
        include: z.ZodArray<z.ZodString>;
        exclude: z.ZodArray<z.ZodString>;
        maxSurfaces: z.ZodNumber;
        removedSurface: z.ZodEnum<{
            shed: "shed";
            dispose: "dispose";
        }>;
    }, z.core.$strict>;
    interactions: z.ZodObject<{
        brush: z.ZodObject<{
            enabled: z.ZodBoolean;
            radius: z.ZodNumber;
            strength: z.ZodNumber;
            activation: z.ZodEnum<{
                hover: "hover";
                press: "press";
            }>;
        }, z.core.$strict>;
        snowballs: z.ZodObject<{
            enabled: z.ZodBoolean;
            activation: z.ZodEnum<{
                "press-and-drag": "press-and-drag";
                "hover-circle": "hover-circle";
            }>;
            minRadius: z.ZodNumber;
            maxRadius: z.ZodNumber;
            maxCount: z.ZodNumber;
        }, z.core.$strict>;
        snowman: z.ZodObject<{
            enabled: z.ZodBoolean;
            requiredBalls: z.ZodLiteral<3>;
        }, z.core.$strict>;
        pointerVortex: z.ZodObject<{
            enabled: z.ZodBoolean;
        }, z.core.$strict>;
    }, z.core.$strict>;
    performance: z.ZodObject<{
        adaptive: z.ZodBoolean;
        maxFPS: z.ZodNumber;
        preferredQuality: z.ZodEnum<{
            auto: "auto";
            low: "low";
            medium: "medium";
            high: "high";
        }>;
        maxDPR: z.ZodNumber;
    }, z.core.$strict>;
    accessibility: z.ZodObject<{
        reducedMotion: z.ZodEnum<{
            respect: "respect";
            reduce: "reduce";
            ignore: "ignore";
        }>;
        controls: z.ZodBoolean;
    }, z.core.$strict>;
    debug: z.ZodBoolean;
}, z.core.$strict>;
export declare const defaults: WeatherConfig;
export declare const defaultConfig: WeatherConfig;
export declare const presets: Record<PresetName, WeatherOptions>;
export declare function resolveConfig(options?: WeatherOptions): WeatherConfig;
export declare function patchConfig(current: WeatherConfig, patch: WeatherOptions): WeatherConfig;
export declare function validateConfig(value: unknown): WeatherConfig;
export declare function cloneConfig(config: WeatherConfig): WeatherConfig;
export declare const surfaceOptionsSchema: z.ZodObject<{
    priority: z.ZodOptional<z.ZodNumber>;
    accumulation: z.ZodOptional<z.ZodBoolean>;
    material: z.ZodOptional<z.ZodEnum<{
        flat: "flat";
        slippery: "slippery";
        sticky: "sticky";
        "no-accumulation": "no-accumulation";
    }>>;
    edge: z.ZodOptional<z.ZodEnum<{
        top: "top";
        bottom: "bottom";
    }>>;
    layer: z.ZodOptional<z.ZodEnum<{
        background: "background";
        content: "content";
        foreground: "foreground";
    }>>;
    clip: z.ZodOptional<z.ZodBoolean>;
    maxSnowDepth: z.ZodOptional<z.ZodNumber>;
}, z.core.$strict>;
//# sourceMappingURL=config.d.ts.map