import type { Container } from "../../../Core/Container.js";
import { Effect } from "./Effect/Effect.js";
import type { IOptionLoader } from "../../Interfaces/IOptionLoader.js";
import type { IParticlesOptions } from "../../Interfaces/Particles/IParticlesOptions.js";
import { Move } from "./Move/Move.js";
import { Paint } from "./Paint.js";
import { ParticlesBounce } from "./Bounce/ParticlesBounce.js";
import type { ParticlesGroups } from "../../../Types/ParticlesGroups.js";
import { ParticlesNumber } from "./Number/ParticlesNumber.js";
import type { PluginManager } from "../../../Core/Utils/PluginManager.js";
import type { RecursivePartial } from "../../../Types/RecursivePartial.js";
import { Shape } from "./Shape/Shape.js";
import type { SingleOrMultiple } from "../../../Types/SingleOrMultiple.js";
import { ZIndex } from "./ZIndex/ZIndex.js";
export declare class ParticlesOptions implements IParticlesOptions, IOptionLoader<IParticlesOptions> {
    #private;
    [name: string]: unknown;
    readonly bounce: ParticlesBounce;
    readonly effect: Effect;
    readonly groups: ParticlesGroups;
    readonly move: Move;
    readonly number: ParticlesNumber;
    paint: SingleOrMultiple<Paint>;
    palette?: string;
    reduceDuplicates: boolean;
    readonly shape: Shape;
    readonly zIndex: ZIndex;
    constructor(pluginManager: PluginManager, container?: Container);
    load(data?: RecursivePartial<IParticlesOptions>): void;
}
