import { TypedObjNode } from './_Base';
import { Object3D, Group } from 'three';
import { NodeParamsConfig } from '../utils/params/ParamsConfig';
import { FlagsControllerD } from '../utils/FlagsController';
export declare abstract class TypedLightObjNode<L extends Object3D, K extends NodeParamsConfig> extends TypedObjNode<Group, K> {
    readonly flags: FlagsControllerD;
    readonly renderOrder: number;
    protected _light: L;
    get light(): L;
    protected abstract createLight(): L;
    protected _usedInScene: boolean;
    initializeBaseNode(): void;
    private _cook_main_without_inputs_when_dirty_bound;
    private _cook_main_without_inputs_when_dirty;
    protected set_object_name(): void;
    private _updateLightAttachment;
    cook(): Promise<void>;
    protected updateLightParams(): void | Promise<void>;
    protected updateShadowParams(): void;
}
export type BaseLightObjNodeType = TypedLightObjNode<Object3D, NodeParamsConfig>;
