/**
 * Effect provides various filter functions to achieve different visual effects
 * similar to how image filters (photo apps) work.
 *
 * @deprecated Use "json/*" modules instead.
 */
export type Effect = ScaleDependentEffect[] | EffectFunction[];
/**
 * An object describing the effect to apply at a scale stop.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface ScaleDependentEffect {
    /**
     * The scale of the view for the effect to take place.
     */
    scale: number;
    /**
     * The effect to be applied at the corresponding scale.
     */
    value: EffectFunction[];
}
/**
 * Effect functions that can be combined to build a layer effect.
 *
 * @deprecated Use "json/*" modules instead.
 */
export type EffectFunction = HueRotateEffectFunction | BlurEffectFunction | DropShadowEffectFunction | BloomEffectFunction | BrightnessEffectFunction | ContrastEffectFunction | GrayscaleEffectFunction | InvertEffectFunction | OpacityEffectFunction | SaturateEffectFunction | SepiaEffectFunction;
/**
 * An Effect Function for the hue-rotate effect.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface HueRotateEffectFunction {
    /**
     * The relative change in hue as an angle in degree. A value of 0 leaves the
     * input unchanged. A positive hue rotation increases the hue value, while a
     * negative one decreases the hue value.
     */
    angle?: number;
    /**
     * Effect type.
     */
    type: "hue-rotate";
}
/**
 * An Effect Function for the blur effect.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface BlurEffectFunction {
    /**
     * The radius of the blur in points. It defines the value of the standard
     * deviation to the Gaussian function. Negative values are not allowed.
     */
    radius?: number;
    /**
     * Effect type.
     */
    type: "blur";
}
/**
 * An Effect Function for the drop-shadow effect.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface DropShadowEffectFunction {
    /**
     * The radius of the blur in points. It defines the value of the standard
     * deviation to the Gaussian function.
     */
    blurRadius?: number;
    /**
     * Color is represented as a four-element array. The four elements represent
     * values for red, green, blue, and alpha in that order. Values range from 0
     * through 255.
     */
    color?: number[];
    /**
     * The distance of the shadow on the x-axis in points.
     */
    xoffset?: number;
    /**
     * The distance of the shadow on the y-axis in points.
     */
    yoffset?: number;
    /**
     * Effect type.
     */
    type: "drop-shadow";
}
/**
 * An Effect Function for the brightness effect.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface BrightnessEffectFunction extends GenericEffectFunction {
    /**
     * Effect type.
     */
    type: "brightness";
}
/**
 * An Effect Function for the contrast effect.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface ContrastEffectFunction extends GenericEffectFunction {
    /**
     * Effect type.
     */
    type: "contrast";
}
/**
 * An Effect Function for the grayscale effect.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface GrayscaleEffectFunction extends GenericEffectFunction {
    /**
     * Effect type.
     */
    type: "grayscale";
}
/**
 * An Effect Function for the invert effect.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface InvertEffectFunction extends GenericEffectFunction {
    /**
     * Effect type.
     */
    type: "invert";
}
/**
 * An Effect Function for the opacity effect.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface OpacityEffectFunction extends GenericEffectFunction {
    /**
     * Effect type.
     */
    type: "opacity";
}
/**
 * An Effect Function for the saturate effect.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface SaturateEffectFunction extends GenericEffectFunction {
    /**
     * Effect type.
     */
    type: "saturate";
}
/**
 * An Effect Function for the sepia effect.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface SepiaEffectFunction extends GenericEffectFunction {
    /**
     * Effect type.
     */
    type: "sepia";
}
/**
 * An Effect Function for the bloom effect.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface BloomEffectFunction {
    /**
     * Determines the radius of the blur. Negative values are not allowed.
     * Leaves the pixels inside the radius untouched.
     */
    radius?: number;
    /**
     * The intensity of the bloom effect. The higher the value, the brighter the
     * glow. Negative values are not allowed.
     */
    strength?: number;
    /**
     * The minimum color luminosity for a pixel to bloom, where at 0 all pixels
     * bloom and 1 only the pixels with 100% luminosity colors bloom.
     */
    threshold?: number;
    /**
     * Effect type.
     */
    type: "bloom";
}
interface GenericEffectFunction {
    /**
     * Amount of effect. A value of 0 leaves the input unchanged. Grayscale,
     * invert, sepia, and opacity effects accept a maximum amount of 1 which
     * applies the effect at 100%. Brightness, contrast, and saturate can accept
     * amount above 1. Negative values are not allowed.
     */
    amount?: number;
    /**
     * Effect type.
     */
    type: "brightness" | "contrast" | "grayscale" | "invert" | "opacity" | "saturate" | "sepia";
}
export {};
