import { Object3D } from 'three';
import { CoreParticlesController } from './CoreParticlesController';
import type { PolyScene } from '../../engine/scene/PolyScene';
import { CoreGraphNodeId } from '../graph/CoreGraph';
import { ParticlesSystemGpuSopNode } from '../../engine/nodes/sop/ParticlesSystemGpu';
import { AbstractRenderer } from '../../engine/viewers/Common';
import { GPUComputationConfigRef } from './gpuCompute/GPUComputationRenderer';
export declare function createOrFindParticlesController(object: Object3D, scene: PolyScene): Promise<void>;
export declare function setParticleRenderer(nodeId: CoreGraphNodeId, renderer: AbstractRenderer): void;
export declare function stepParticles(object: Object3D, delta: number, configRef: GPUComputationConfigRef): void;
export declare function resetParticles(object: Object3D): void;
export declare function disposeParticlesFromNode(node: ParticlesSystemGpuSopNode): void;
export declare function coreParticlesControllerFromNode(node: ParticlesSystemGpuSopNode): CoreParticlesController | undefined;
export declare function gpuControllerFromNode(node: ParticlesSystemGpuSopNode): import("./CoreParticlesGpuComputeController").CoreParticlesGpuComputeController | undefined;
export declare function renderControllerFromNode(node: ParticlesSystemGpuSopNode): import("./CoreParticlesRenderController").CoreParticlesRenderController | undefined;
