import { AppModule } from '../../app-modules/app-module.js';
import { EventEmitter } from '@kano/common/index.js';
import { Output } from '../../output/output.js';
import { Part } from '../../parts/part.js';
export interface IPartCollision {
    a: Part;
    b: Part;
}
export declare class ApplicationModule extends AppModule {
    _onDidStart: EventEmitter;
    _onDidPartCollision: EventEmitter<IPartCollision>;
    private _justRestarted;
    private userSubscriptions;
    private collisionInterval;
    private watchedCollisions;
    static transformLegacy(app: any): void;
    constructor(output: Output);
    static readonly id: string;
    _onStart(callback: () => void): void;
    _onPartCollision(a: string, b: string, callback: () => void): void;
    _setupCollisionDetection(): void;
    _stopCollisionDetection(): void;
    _start(): void;
    _reset(): void;
    _restart(): void;
}
export default ApplicationModule;
