import Subverse from './Subverse'; import { Bounds, Optional } from '../types'; import { TimingFunction } from './timing'; export interface UniverseOptions { bounds?: Bounds; frameRate?: number; creationDuration?: number; deathDuration?: number; creationTimingFn?: TimingFunction; deathTimingFn?: TimingFunction; onStateChange?: (state: UniverseState, universe: Universe) => void; } export declare enum UniverseState { Creating = "Creating", Created = "Created", Dying = "Dying", Dead = "Dead" } declare class Universe extends Subverse { private state; private resolveDeath; private health; private frameRate; private creationDuration; private creationRate; private deathDuration; private deathRate; private creationTimingFn; private deathTimingFn; private onStateChange?; constructor({ bounds, frameRate, creationDuration, deathDuration, creationTimingFn, deathTimingFn, onStateChange }?: UniverseOptions); private setState; private applyGrowth; private applyDecay; setCreationDuration(creationDuration: number): void; setDeathDuration(deathDuration: number): void; setFrameRate(frameRate: number): void; setOnStateChange(onStateChange: Optional<(state: UniverseState, universe: Universe) => void>): void; die(): Promise; tick(): void; } export default Universe;