///
import { ElementRef, NgZone } from '@angular/core';
import { Observable, Subscription } from 'rxjs';
import * as THREE from 'three';
import { NgtResizeResult } from '../services/resize';
import type { NgtBeforeRenderRecord, NgtPerformanceOptions, NgtState } from '../types';
import { NgtComponentStore, tapEffect } from './component-store';
import * as i0 from "@angular/core";
export declare class NgtStore extends NgtComponentStore {
#private;
private parentStore;
private resizeResult$;
private zone;
readonly ready$: Observable;
constructor({ nativeElement: { clientWidth, clientHeight } }: ElementRef, performanceOptions: NgtPerformanceOptions, { devicePixelRatio }: Window, parentStore: NgtStore, resizeResult$: Observable, zone: NgZone);
init(canvasElement: HTMLCanvasElement, rootStateMap: Map NgtState>, invalidate: (state?: () => NgtState, frames?: number) => void, advance: (timestamp: number, runGlobalCallbacks?: boolean, state?: () => NgtState, frame?: XRFrame) => void): void;
onReady(cb: Parameters[0]): Subscription;
registerBeforeRender(record: NgtBeforeRenderRecord): () => void;
unregisterBeforeRender(uuid: string): void;
addInteraction(interaction: THREE.Object3D): void;
removeInteraction(uuid: string): void;
setFrameloop(frameloop?: NgtState['frameloop']): void;
setDpr(dpr: NgtState['dpr']): void;
readonly startLoop: (observableOrValue: NgtState | Observable) => Subscription;
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵprov: i0.ɵɵInjectableDeclaration;
}