import { Color, ColorRepresentation, DirectionalLight, DirectionalLightShadow, Euler, Vector3 } from 'three';
import { ILight, ILightEvent, ILightEventTypes } from './ILight';
import { IObject3D } from '../IObject';
import { UiObjectConfig } from 'uiconfig.js';
export declare class DirectionalLight2<E extends ILightEvent = ILightEvent, ET extends ILightEventTypes = ILightEventTypes> extends DirectionalLight<E, ET> implements ILight<DirectionalLightShadow> {
    assetType: "light";
    setDirty: (this: ILight, options?: import("../IObject").IObjectSetDirtyOptions) => void;
    refreshUi: (this: IObject3D) => void;
    uiConfig: UiObjectConfig;
    readonly isDirectionalLight2 = true;
    visible: boolean;
    color: Color;
    intensity: number;
    readonly position: Vector3;
    readonly rotation: Euler;
    castShadow: boolean;
    constructor(color?: ColorRepresentation, intensity?: number);
    autoScale(): this;
    autoCenter(): this;
    /**
     * @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: <T extends IObject3D = IObject3D>(id: number) => T | undefined;
    getObjectByName: <T extends IObject3D = IObject3D>(name: string) => T | undefined;
    getObjectByProperty: <T extends IObject3D = IObject3D>(name: string, value: string) => T | undefined;
    copy: (source: DirectionalLight | IObject3D, recursive?: boolean, ...args: any[]) => this;
    clone: (recursive?: boolean) => this;
    remove: (...object: IObject3D[]) => this;
    dispatchEvent: (event: ILightEvent) => void;
    parent: null;
    children: IObject3D[];
}
//# sourceMappingURL=DirectionalLight2.d.ts.map