import { BaseSopOperation } from './_Base';
import { CoreGroup } from '../../../core/geometry/Group';
import { Vector3, CubeCamera } from 'three';
import { InputCloneMode } from '../../../engine/poly/InputCloneMode';
import { DefaultOperationParams } from '../../../core/operations/_Base';
import { CameraNodeType } from '../../poly/NodeContext';
import type { BaseNodeType } from '../../nodes/_Base';
interface CreateCubeCameraParams {
    near: number;
    far: number;
    resolution: number;
}
interface UpdateCubeCameraParams {
    showHelper: boolean;
    matrixAutoUpdate: boolean;
    name: string;
}
interface CubeCameraSopParams extends CreateCubeCameraParams, UpdateCubeCameraParams, DefaultOperationParams {
    position: Vector3;
    rotation: Vector3;
}
interface AttributeOptions {
}
export declare class CubeCameraExtended extends CubeCamera {
    copy(source: CubeCamera, recursive: boolean): this;
}
export declare class CubeCameraSopOperation extends BaseSopOperation {
    static readonly DEFAULT_PARAMS: CubeCameraSopParams;
    static readonly INPUT_CLONED_STATE = InputCloneMode.NEVER;
    static type(): Readonly<CameraNodeType.CUBE>;
    static onRegister: import("../../poly/registers/nodes/NodesRegister").OnNodeRegisterCallback;
    cook(inputCoreGroups: CoreGroup[], params: CubeCameraSopParams): CoreGroup;
    static updateCamera(camera: CubeCamera, params: UpdateCubeCameraParams): void;
    private static _addHelper;
    private static _removeHelper;
    static createCamera(params: CreateCubeCameraParams, nodeGenerator?: BaseNodeType): CubeCameraExtended;
    static setCameraAttributes(camera: CubeCamera, options: AttributeOptions): void;
}
export {};
