/**
 * Creates a plane with a distorted reflection, to simulate an ocean surface
 *
 * @remarks
 *
 * Without any input, this node creates a very large plane.
 * If you would like the ocean to be restricted to a smaller area, such as a disk,
 * you can plug in an input geometry. Just make sure that this geometry should be facing the z axis,
 * as it will currently be rotated internally to face the y axis. Note that this behavior may change in the future
 * to be made more intuitive.
 *
 */
import { TypedSopNode } from './_Base';
import { CoreGroup } from '../../../core/geometry/Group';
import { NodeParamsConfig } from '../utils/params/ParamsConfig';
import { Object3D } from 'three';
declare class OceanPlaneSopParamsConfig extends NodeParamsConfig {
    main: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FOLDER>;
    /** @param reflection direction */
    direction: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.VECTOR3>;
    /** @param sun direction */
    sunDirection: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.VECTOR3>;
    /** @param sun color */
    sunColor: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.COLOR>;
    /** @param water color */
    waterColor: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.COLOR>;
    /** @param reflection color */
    reflectionColor: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.COLOR>;
    /** @param reflection fresnel */
    reflectionFresnel: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>;
    /** @param waves Height */
    wavesHeight: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>;
    /** @param distortion scale */
    distortionScale: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>;
    /** @param distortion speed */
    timeScale: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>;
    /** @param size */
    size: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>;
    advanced: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FOLDER>;
    /** @param render reflection */
    renderReflection: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>;
    /** @param normal Bias - adjusts this if the reflections are too grainy */
    normalBias: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>;
    /** @param multisamples */
    multisamples: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.INTEGER>;
    /** @param reacts to fog */
    useFog: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>;
}
export declare class OceanPlaneSopNode extends TypedSopNode<OceanPlaneSopParamsConfig> {
    paramsConfig: OceanPlaneSopParamsConfig;
    static type(): string;
    initializeNode(): void;
    cook(inputCoreGroups: CoreGroup[]): void;
    updateObjectOnAdd(object: Object3D, parent: Object3D): void;
}
export {};
