import { Constructor } from '../../../../types/GlobalTypes';
import { TypedEventNode } from '../_Base';
import { NodeParamsConfig } from '../../utils/params/ParamsConfig';
import { CorePlayer } from '../../../../core/player/Player';
import { MeshWithBVH } from '../../../../core/geometry/bvh/three-mesh-bvh';
export declare function ColliderParamConfig<TBase extends Constructor>(Base: TBase): {
    new (...args: any[]): {
        colliderObject: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../index_all").ParamType.NODE_PATH>;
    };
} & TBase;
declare const ColliderParamsConfig_base: {
    new (...args: any[]): {
        colliderObject: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../index_all").ParamType.NODE_PATH>;
    };
} & typeof NodeParamsConfig;
declare class ColliderParamsConfig extends ColliderParamsConfig_base {
}
declare abstract class ColliderEventNode extends TypedEventNode<ColliderParamsConfig> {
    abstract player(): CorePlayer | undefined;
    abstract collisionController(): CollisionController;
    static PARAM_CALLBACK_updateCollider(node: ColliderEventNode): void;
}
export declare class CollisionController {
    protected node: ColliderEventNode;
    constructor(node: ColliderEventNode);
    private _colliderNode;
    private __colliderNodeGraphNode;
    private _colliderNodeGraphNode;
    getCollider(): Promise<MeshWithBVH | undefined>;
    updateCollider(): Promise<void>;
}
export {};
