import { Object3D } from 'three';
import { CoreGroup } from '../../core/geometry/Group';
import { BaseSopNodeType } from '../nodes/sop/_Base';
import type { CSGOBJTesselationParams } from '../../core/geometry/modules/csg/CsgCommon';
import type { CADOBJTesselationParams } from '../../core/geometry/modules/cad/CadCommon';
import type { QUADOBJTesselationParams } from '../../core/geometry/modules/quad/QuadCommon';
import type { TetOBJTesselationParams } from '../../core/geometry/modules/tet/TetCommon';
interface Params extends CSGOBJTesselationParams, CADOBJTesselationParams, QUADOBJTesselationParams, TetOBJTesselationParams {
}
export type SpecializedChildrenHook = (displayNode: BaseSopNodeType, coreGroup: CoreGroup, newObjects: Object3D[], params: Params) => boolean;
export declare class PolySpecializedChildrenController {
    private _map;
    private _hooks;
    registerHook(hookName: string, hook: SpecializedChildrenHook): void;
    private _updateCache;
    runHooks(displayNode: BaseSopNodeType, coreGroup: CoreGroup, newObjects: Object3D[], params: Params): boolean;
}
export {};
