import type { RenderItem } from "../../ForwardPass";
export interface ContactShadowBounds {
    readonly min: readonly [number, number, number];
    readonly max: readonly [number, number, number];
}
export interface ContactShadowPassOptions {
    readonly bounds: ContactShadowBounds;
    readonly floorY: number;
    readonly labelPrefix?: string;
    readonly opacity?: number;
    readonly lightDirection?: readonly [number, number, number];
    readonly softness?: number;
    readonly footprintPoints?: readonly (readonly [number, number, number])[];
}
export interface ContactShadowPassDiagnostics {
    readonly mode: "directional-multi-lobe-receiver-contact";
    readonly parity: "not-full-contact-shadow";
    readonly layerCount: number;
    readonly quality: "bounded-receiver-contact";
    readonly floorY: number;
    readonly receiverGap: number;
    readonly gapFade: number;
    readonly gapSpread: number;
    readonly radiusX: number;
    readonly radiusZ: number;
    readonly softness: number;
    readonly directionalOffset: readonly [number, number];
    readonly lightAngleFade: number;
    readonly projectionStretch: number;
    readonly projectionYawRadians: number;
    readonly footprintPointCount: number;
    readonly footprintLayerCount: number;
}
export interface ContactShadowPassResult {
    readonly renderItems: readonly RenderItem[];
    readonly diagnostics: ContactShadowPassDiagnostics;
    dispose(): void;
}
export declare function createContactShadowPass(options: ContactShadowPassOptions): ContactShadowPassResult;
//# sourceMappingURL=ContactShadowPass.d.ts.map