import { Camera, IUniform, Object3D } from 'three';
import { ICamera, ICameraEventMap, ICameraSetDirtyOptions } from '../ICamera';
import { CameraView, ICameraView } from '../camera/CameraView';
export declare const iCameraCommons: {
    setDirty: (this: ICamera, options?: ICameraSetDirtyOptions) => void;
    activateMain: (this: ICamera, options?: Omit<ICameraEventMap["activateMain"], "bubbleToParent">, _internal?: boolean, _refresh?: boolean, canvas?: HTMLCanvasElement) => void;
    deactivateMain: (this: ICamera, options?: Omit<ICameraEventMap["activateMain"], "bubbleToParent">, _internal?: boolean, _refresh?: boolean, clearCanvas?: boolean) => void;
    refreshUi: (this: ICamera) => void;
    refreshTarget: (this: ICamera, distanceFromTarget?: number, setDirty?: boolean) => void;
    refreshAspect: (this: ICamera, setDirty?: boolean) => void;
    updateShaderProperties: (this: ICamera, material: {
        defines: Record<string, string | number | undefined>;
        uniforms: {
            [p: string]: IUniform;
        };
    }) => ICamera<ICameraEventMap>;
    upgradeCamera: typeof upgradeCamera;
    copy: (superCopy: ICamera["copy"]) => ICamera["copy"];
    getView: <T extends ICameraView = CameraView>(this: ICamera, worldSpace?: boolean, _view?: T) => T;
    setView: <T extends ICameraView = CameraView>(this: ICamera, view: T) => void;
    /**
     * Instantly frames the camera to fit the given objects in the viewport.
     * Computes the bounding box, fitting distance, and sets the camera position and target.
     * The camera direction is preserved — only distance from target changes.
     */
    fitObject: (this: ICamera, objects: Object3D | Object3D[], distanceMultiplier?: number, distanceBounds?: {
        min?: number;
        max?: number;
    }) => void;
    setViewFromCamera: (this: ICamera, camera: Camera | ICamera, distanceFromTarget?: number, worldSpace?: boolean) => void;
    setViewToMain: (this: ICamera, eventOptions: Omit<ICameraEventMap["setView"], "camera" | "bubbleToParent">) => void;
    setNearFar(camera: ICamera, near: number, far: number, setDirty: boolean, source?: string): boolean;
    defaultMinNear: number;
    defaultMaxFar: number;
};
declare function upgradeCamera(this: ICamera): void;
export {};
//# sourceMappingURL=../../src/core/object/iCameraCommons.d.ts.map