import type { Device } from '@luma.gl/core';
import { Texture } from '@luma.gl/core';
import { AmbientLight } from './ambient-light';
import { DirectionalLight } from './directional-light';
import { PointLight } from './point-light';
import { Matrix4 } from '@math.gl/core';
import type Layer from '../../lib/layer';
import type { Effect, PreRenderOptions } from '../../lib/effect';
type LightingEffectProps = Record<string, PointLight | DirectionalLight | AmbientLight>;
export default class LightingEffect implements Effect {
    id: string;
    props: LightingEffectProps;
    shadowColor: number[];
    private shadow;
    private ambientLight?;
    private directionalLights;
    private pointLights;
    private shadowPasses;
    private shadowMaps;
    private dummyShadowMap;
    private shaderAssembler?;
    private shadowMatrices?;
    constructor(props?: LightingEffectProps);
    setProps(props: LightingEffectProps): void;
    preRender(device: Device, { layers, layerFilter, viewports, onViewportActive, views }: PreRenderOptions): void;
    getModuleParameters(layer: Layer): {
        lightSources?: {
            ambientLight?: AmbientLight | null | undefined;
            directionalLights: DirectionalLight[];
            pointLights: PointLight[];
        } | undefined;
        shadowMaps?: Texture<import("@luma.gl/core").TextureProps>[] | undefined;
        dummyShadowMap?: Texture<import("@luma.gl/core").TextureProps> | null | undefined;
        shadowColor?: number[] | undefined;
        shadowMatrices?: Matrix4[] | undefined;
    };
    cleanup(): void;
    private _calculateMatrices;
    private _createShadowPasses;
    private _applyDefaultLights;
}
export {};
//# sourceMappingURL=lighting-effect.d.ts.map