/**
 * Uses a flat mesh and renders soft contact shadows on it
 *
 *
 */
import { TypedSopNode } from './_Base';
import { CoreGroup } from '../../../core/geometry/Group';
import { NodeParamsConfig } from '../utils/params/ParamsConfig';
import { SopType } from '../../poly/registers/nodes/types/Sop';
import { Object3D } from 'three';
import { ContactShadowController } from '../../../core/contactShadows/ContactShadow';
declare class ContactShadowsSopParamsConfig extends NodeParamsConfig {
    renderAllObjects: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>;
    objects: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.STRING>;
    /** @param distance from the ground up to which shadows are visible */
    dist: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>;
    /** @param shadow resolution */
    shadowRes: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.VECTOR2>;
    /** @param shadow opacity */
    opacity: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>;
    /** @param blur amount */
    blur: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>;
    /** @param toggle on to add a secondary blur, which may be useful to get rid of artefacts */
    tblur2: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>;
    /** @param secondary blur amount */
    blur2: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>;
    /** @param show helper */
    showHelper: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>;
}
export declare class ContactShadowsSopNode extends TypedSopNode<ContactShadowsSopParamsConfig> {
    paramsConfig: ContactShadowsSopParamsConfig;
    static type(): SopType;
    initializeNode(): void;
    private _planeOperation;
    cook(inputCoreGroups: CoreGroup[]): void;
    private _defaultCoreGroup;
    updateObjectOnAdd(object: Object3D, parent: Object3D): void;
    private _lastContactShadowsController;
    lastContactShadowsController(): ContactShadowController | undefined;
}
export {};
