import { CSMShadowNode } from 'three/examples/jsm/csm/CSMShadowNode.js';
import { TempNode, NodeBuilder, NodeFrame, TextureNode } from 'three/webgpu';
import { Node } from '@takram/three-geospatial/webgpu';
import { CoordinateNode } from './ShadowLengthNode/CoordinateNode';
import { EpipolarShadowLengthNode } from './ShadowLengthNode/EpipolarShadowLengthNode';
import { MinMaxLevelsNode } from './ShadowLengthNode/MinMaxLevelsNode';
import { SliceEndpointsNode } from './ShadowLengthNode/SliceEndpointsNode';
import { SliceUVDirectionNode } from './ShadowLengthNode/SliceUVDirectionNode';
import { UnwarpEpipolarNode } from './ShadowLengthNode/UnwarpEpipolarNode';
export declare class ShadowLengthNode extends TempNode {
    static get type(): string;
    csmShadowNode: CSMShadowNode;
    viewZUnitNode: TextureNode;
    sliceEndpointsNode: SliceEndpointsNode;
    coordinateNode: CoordinateNode;
    sliceUVDirectionNode: SliceUVDirectionNode;
    minMaxLevelsNode: MinMaxLevelsNode;
    epipolarShadowLengthNode: EpipolarShadowLengthNode;
    unwarpEpipolarNode: UnwarpEpipolarNode;
    resolutionScale: number;
    autoSampleResolution: boolean;
    epipolarSliceCount: import('three/webgpu').UniformNode<number>;
    maxSliceSampleCount: import('three/webgpu').UniformNode<number>;
    firstCascade: import('three/webgpu').UniformNode<number>;
    private readonly screenSize;
    private readonly lightScreenPosition;
    private readonly isLightOnScreen;
    private currentCascades;
    constructor(csmShadowNode: CSMShadowNode, viewZUnitNode: TextureNode);
    customCacheKey(): number;
    update({ renderer, material }: NodeFrame): void;
    setup(builder: NodeBuilder): unknown;
    getDebugInternalTexturesNode(uvNode?: Node<'vec2'>): Node<'vec3'>;
    dispose(): void;
}
export declare const shadowLength: (...args: ConstructorParameters<typeof ShadowLengthNode>) => ShadowLengthNode;
