declare namespace APJS {
  /**
   * @class Bloom
   * @description Represents a PostEffect specifically designed for the Bloom.
   */
  class Bloom extends PostEffect {
    protected constructor();
  
      /**
       * @description Bloom anamorphic ratio. Stretches the glow horizontally or vertically.
       */
    get anamorphicRatio(): number;
  
    set anamorphicRatio(value: number);
  
      /**
       * @description Bloom clamp value. Limits the maximum brightness of the glow.
       */
    get clamp(): number;
  
    set clamp(value: number);
  
      /**
       * @description Bloom effect color, used to tint the glow.
       */
    get color(): Color;
  
    set color(value: Color);
  
      /**
       * @description Bloom diffuse factor. Controls the blur radius of the glow.
       */
    get diffuse(): number;
  
    set diffuse(value: number);
  
      /**
       * @description Bloom fast mode. Improves performance at the cost of quality.
       * @deprecated fast mode is deprecated, can not be used at runtime.
       */
    get fastMode(): boolean;
  
      /**
       * @deprecated fast mode is deprecated, can not be used at runtime.
       */
    set fastMode(value: boolean);
  
      /**
       * @description Bloom effect intensity. Higher values make the glow stronger.
       */
    get intensity(): number;
  
    set intensity(value: number);
  
      /**
       * @description Bloom soft knee. Smooths the transition around the threshold.
       */
    get softKnee(): number;
  
    set softKnee(value: number);
  
      /**
       * @description Bloom threshold. Pixels brighter than this value will trigger the glow.
       */
    get threshold(): number;
  
    set threshold(value: number);
  }
  
  enum BokehBlurShapeType {
    Hexagon,
    Circle,
  }
  
  /**
   * @class BokehBlur
   * @description Represents a PostEffect specifically designed for the BokehBlur.
   */
  class BokehBlur extends PostEffect {
    protected constructor();
  
      /**
       * @description Downsample factor for bokeh blur. Higher values improve performance but reduce quality.
       */
    get downsample(): number;
  
    set downsample(value: number);
  
      /**
       * @description Enables fast circle approximation mode for bokeh blur. Improves performance but reduces accuracy.
       * @deprecated fast circle is deprecated, can not be used at runtime.
       */
    get fastCircle(): boolean;
  
      /**
       * @deprecated fast circle is deprecated, can not be used at runtime.
       */
    set fastCircle(value: boolean);
  
      /**
       * @description Number of iterations used for the bokeh blur. Higher values produce smoother results at the cost of performance.
       */
    get iterations(): number;
  
    set iterations(value: number);
  
      /**
       * @description Bokeh blur shape type (e.g., hexagon, circle). Determines the appearance of the blur highlights.
       * @deprecated shape is deprecated, can not be used at mobile.
       */
    get shape(): BokehBlurShapeType;
  
      /**
       * @deprecated shape is deprecated, can not be used at runtime.
       */
    set shape(value: BokehBlurShapeType);
  
      /**
       * @description Bokeh blur size. Controls the radius of the blur effect.
       */
    get size(): number;
  
    set size(value: number);
  }
  
  /**
   * @class ChromaticAberration
   * @description Represents a PostEffect specifically designed for the ChromaticAberration.
   */
  class ChromaticAberration extends PostEffect {
    protected constructor();
  
      /**
       * @description Enables fast mode for chromatic aberration. Improves performance but reduces accuracy of the effect.
       */
    get fastMode(): boolean;
  
    set fastMode(value: boolean);
  
      /**
       * @description Chromatic aberration intensity. Controls how strongly the RGB channels are shifted apart.
       */
    get intensity(): number;
  
    set intensity(value: number);
  
      /**
       * @description Spectral LUT (Lookup Texture) used for chromatic aberration. Defines how RGB channels are sampled and shifted.
       * @deprecated spectralLUT is deprecated, can not be used at runtime.
       */
    get spectralLUT(): Texture | null;
  
      /**
       * @deprecated spectralLUT is deprecated, can not be used at runtime.
       */
    set spectralLUT(value: Texture | null);
  }
  
  /**
   * @class Custom
   * @description Represents a PostEffect specifically designed for the Custom.
   */
  class Custom extends PostEffect {
    protected constructor();
  
      /**
       * @description Material used for the custom post-process. Defines the shader applied in the effect.
       */
    get material(): Material | null;
  
    set material(value: Material | null);
  }
  
  /**
   * @class Distort
   * @description Represents a PostEffect specifically designed for the Distort.
   */
  class Distort extends PostEffect {
    protected constructor();
  
      /**
       * @description Distortion amplitude (X,Y). Defines the strength of the wave-like distortion along each axis.
       */
    get amplitude(): Vector2f;
  
    set amplitude(value: Vector2f);
  
      /**
       * @description Barrel distortion power. Controls the strength of the radial distortion.
       */
    get barrelPower(): number;
  
    set barrelPower(value: number);
  
      /**
       * @description Distortion frequency (X,Y). Controls how frequently the distortion waves repeat across the screen.
       */
    get frequency(): Vector2f;
  
    set frequency(value: Vector2f);
  
      /**
       * @description Distortion offset (X,Y). Shifts the phase of the distortion pattern.
       */
    get offset(): Vector2f;
  
    set offset(value: Vector2f);
  
      /**
       * @description Distortion rotation in radians. Rotates the distortion effect around the screen center.
       */
    get rotation(): number;
  
    set rotation(value: number);
  
      /**
       * @description Distortion speed (X,Y). Determines the animation speed of the distortion waves.
       */
    get speed(): Vector2f;
  
    set speed(value: Vector2f);
  
      /**
       * @description Zoom factor for the distortion effect. Higher values zoom the image in or out.
       */
    get zoom(): number;
  
    set zoom(value: number);
  }
  
  /**
   * @class Fxaa
   * @description Represents a PostEffect specifically designed for the Fxaa.
   */
  class Fxaa extends PostEffect {
    protected constructor();
  }
  
  /**
   * @class Grain
   * @description Represents a PostEffect specifically designed for the Grain.
   */
  class Grain extends PostEffect {
    protected constructor();
  
      /**
       * @description Grain color contribution. Adjusts how much color noise is blended into the effect.
       */
    get color(): number;
  
    set color(value: number);
  
      /**
       * @description Grain animation speed. Higher values make the grain move faster across frames.
       */
    get speed(): number;
  
    set speed(value: number);
  
      /**
       * @description Grain strength. Controls the overall intensity of the film grain effect.
       */
    get strength(): number;
  
    set strength(value: number);
  }
  
  /**
   * @class LensFlare
   * @description Represents a PostEffect specifically designed for the LensFlare.
   */
  class LensFlare extends PostEffect {
    protected constructor();
  
      /**
       * @description Lens flare intensity. Controls the brightness of the flare effect.
       */
    get intensity(): number;
  
    set intensity(value: number);
  
      /**
       * @description Lens flare position (X,Y). Defines the screen-space position of the flare source.
       */
    get position(): Vector2f;
  
    set position(value: Vector2f);
  }
  
  /**
   * @class MotionBlur
   * @description Represents a PostEffect specifically designed for the MotionBlur.
   */
  class MotionBlur extends PostEffect {
    protected constructor();
  
      /**
       * @description Motion blur intensity. Controls how strongly moving objects are blurred between frames.
       */
    get intensity(): number;
  
    set intensity(value: number);
  }
  
  /**
   * @class Vignette
   * @description Represents a PostEffect specifically designed for the Vignette.
   */
  class Vignette extends PostEffect {
    protected constructor();
  
      /**
       * @description Vignette contrast. Adjusts the sharpness of the vignette falloff between center and edges.
       */
    get contrast(): number;
  
    set contrast(value: number);
  
      /**
       * @description Vignette power. Controls the radial strength of the darkening effect towards screen corners.
       */
    get power(): number;
  
    set power(value: number);
  }
  
  /**
   * @class PostProcess
   * @description Represents a dynamic component specifically designed for the PostProcess.
   */
  class PostProcess extends DynamicComponent {
    protected constructor();
  
      bloom: Bloom | null;
  
      readonly bokehBlur: BokehBlur | null;
  
      readonly chromaticAberration: ChromaticAberration | null;
  
      readonly custom: Custom | null;
  
      readonly distort: Distort | null;
  
      readonly fxaa: Fxaa | null;
  
      readonly grain: Grain | null;
  
      readonly lensFlare: LensFlare | null;
  
      readonly motionBlur: MotionBlur | null;
  
      readonly vignette: Vignette | null;
  }
  
  /**
   * @class PostEffect
   * @description Represents a base class for other post effects.
   */
  class PostEffect extends ScriptCustomObject {
    protected constructor();
  
      enabled: any;
  }
}