export interface A3DDisposable {
    dispose(): void;
}
export interface A3DAppLifecycleSnapshot {
    readonly disposed: boolean;
    readonly animationFrames: number;
    readonly eventListeners: number;
    readonly disposables: number;
    readonly disposeCalls: number;
}
export declare class A3DAppLifecycle {
    private readonly disposables;
    private readonly animationFrames;
    private readonly eventListeners;
    private disposed;
    private disposeCalls;
    addDisposable<T extends A3DDisposable>(disposable: T): T;
    addEventListener(target: EventTarget, type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    requestAnimationFrame(callback: FrameRequestCallback): number;
    cancelAnimationFrame(handle: number): void;
    bindPageTeardown(target?: EventTarget): void;
    dispose(): void;
    snapshot(): A3DAppLifecycleSnapshot;
    private assertAlive;
}
//# sourceMappingURL=A3DAppLifecycle.d.ts.map