import { Color, ColorRepresentation, DirectionalLight, DirectionalLightShadow, Euler, Vector2, Vector3 } from 'three';
import { ILight } from './ILight';
import { IObject3D } from '../IObject';
import { UiObjectConfig } from 'uiconfig.js';
/**
 * Extension of three.js DirectionalLight with additional properties for serialization and UI
 * A directional light is a light source that has a position but no dimensions - a single point in space that emits light in a specific direction.
 *
 * Note - gltf serialization is handled by {@link GLTFLightExtrasExtension}
 *
 * @category Lights
 */
export declare class DirectionalLight2 extends DirectionalLight implements ILight<DirectionalLightShadow>, IObject3D {
    assetType: "light";
    setDirty: (this: ILight, options?: import('../IObject').IObjectSetDirtyOptions, ...args: any[]) => void;
    refreshUi: (this: IObject3D) => void;
    uiConfig: UiObjectConfig;
    readonly isDirectionalLight2 = true;
    visible: boolean;
    name: string;
    color: Color;
    intensity: number;
    readonly position: Vector3;
    readonly rotation: Euler;
    castShadow: boolean;
    shadowMapSize: Vector2;
    /**
     * @internal
     */
    ['_mapSizeChanged'](): void;
    shadowBias: number;
    shadowNormalBias: number;
    shadowRadius: number;
    shadowFrustum: number;
    shadowNear: number;
    shadowFar: number;
    protected _shadowFrustumChanged(): void;
    protected _shadowCamUpdate(change?: string): void;
    constructor(color?: ColorRepresentation, intensity?: number);
    autoScale(): void;
    autoCenter(): void;
    /**
     * @deprecated use `this` instead
     */
    get lightObject(): this;
    /**
     * @deprecated use `this` instead
     */
    get modelObject(): this;
    traverse: (callback: (object: IObject3D) => void) => void;
    traverseVisible: (callback: (object: IObject3D) => void) => void;
    traverseAncestors: (callback: (object: IObject3D) => void) => void;
    getObjectById: (id: number) => IObject3D | undefined;
    getObjectByName: (name: string) => IObject3D | undefined;
    getObjectByProperty: (name: string, value: string) => IObject3D | undefined;
    parent: IObject3D | null;
    children: IObject3D[];
}
//# sourceMappingURL=../../src/core/light/DirectionalLight2.d.ts.map