import { Rect } from "src/geometry";
import { CircleParticle } from "./ParticleShapes";
import { PhysicsEngine } from "./PhysicsEngine";
import { SomeOfflineSimulation } from "./SomeOfflineSimulation";
import { SomeParticleForce } from "./SomeParticleForce";
import { SomeSystemForce } from "./SomeSystemForce";
export declare class CirclePackingOfflineSimulation implements SomeOfflineSimulation<CircleParticle> {
    engine: PhysicsEngine<CircleParticle>;
    isRunning: boolean;
    shouldLog: boolean;
    private _totalSimulatedTime;
    private _iterationCount;
    readonly fixedDeltaTimeSeconds: number;
    minIterations: number;
    maxIterations: number;
    onPreStep: ((deltaTime: number) => void) | null;
    onPostStep: ((deltaTime: number) => void) | null;
    onUpdate: (() => void) | null;
    get totalSimulatedTime(): number;
    get iterationCount(): number;
    get frameTimeMS(): number;
    constructor(args: {
        frame: Rect;
        centralAttractionStrength?: number;
        timeStep?: number;
    });
    run(): void;
    step(): void;
    reset(): void;
    addParticle(particle: CircleParticle): void;
    addForce(force: SomeParticleForce | SomeSystemForce): void;
    isKineticEnergyNegligible(): boolean;
    isStable(): boolean;
}
//# sourceMappingURL=CirclePackingOfflineSimulation.d.ts.map