import type { Constructor } from 'type-fest';
import { type IViewer } from '../../index.js';
import EventEmitter from '../EventEmitter.js';
export declare class Extension extends EventEmitter {
    get inject(): Array<Constructor<Extension>>;
    protected viewer: IViewer;
    protected _enabled: boolean;
    get enabled(): boolean;
    set enabled(value: boolean);
    constructor(viewer: IViewer, ...args: Extension[]);
    onEarlyUpdate(deltaTime?: number): void;
    onLateUpdate(deltaTime?: number): void;
    onRender(): void;
    onResize(): void;
}
