import { BaseSopOperation } from './_Base';
import { CoreGroup } from '../../../core/geometry/Group';
import { Vector2, Vector3 } from 'three';
import { InputCloneMode } from '../../../engine/poly/InputCloneMode';
import { DefaultOperationParams } from '../../../core/operations/_Base';
interface SphereSopParams extends DefaultOperationParams {
    type: number;
    radius: number;
    resolution: Vector2;
    open: boolean;
    phiStart: number;
    phiLength: number;
    thetaStart: number;
    thetaLength: number;
    detail: number;
    center: Vector3;
    asLines: boolean;
}
declare enum SphereType {
    DEFAULT = "default",
    ISOCAHEDRON = "isocahedron"
}
type SphereTypes = {
    [key in SphereType]: number;
};
export declare const SPHERE_TYPE: SphereTypes;
export declare const SPHERE_TYPES: Array<SphereType>;
export declare class SphereSopOperation extends BaseSopOperation {
    static readonly DEFAULT_PARAMS: SphereSopParams;
    static readonly INPUT_CLONED_STATE = InputCloneMode.NEVER;
    static type(): Readonly<'sphere'>;
    cook(inputCoreGroups: CoreGroup[], params: SphereSopParams): CoreGroup;
    private _cookWithoutInput;
    private _cookWithInput;
    private _createSphereObject;
    private _createRequiredGeometry;
    private _createDefaultSphere;
    private _createDefaultIsocahedron;
}
export {};
