import { AnyFunction, Cartesian2Option, Cartesian3Option, Cartesian4Option, PolygonHierarchyOption, CartographicInDegreeOption, NearFarScalarOption, DistanceDisplayConditionOption, ColorInByteOption, MaterialOption, RectangleInDegreeOption, BoundingRectangleOption, PlaneOption, TranslationRotationScaleOption, CameraOption, HeadingPitchRollOption, Appearances, AppearanceOpts } from './types';
/**
 * 将对象或数组转换为 Cesium.Cartesian2
 * @param {Object} val
 * @returns {Cartesian2 | CallbackProperty} 返回 Cartesian2 或者 CallbackProperty
 * @example
 * const options = [100, 100]
 * // const options = [x: 100, y: 100]
 * const position = makeCartesian2(options)
 */
export declare function makeCartesian2(val: Cesium.CallbackProperty | Cesium.Cartesian2 | Cartesian2Option | Array<number> | AnyFunction<any>, isConstant?: boolean): Cesium.Cartesian2 | Cesium.CallbackProperty | undefined;
/**
 * 将对象或者数组转换为 Cesium.Cartesian3
 * @param {Object} val 传入的对象或数组
 * @param {Boolean} isConstant 传入function时生效，true 代表回调 function 每时每刻都返回值， false 代表改变才会返回值。默认false。
 * @returns 返回 Cartesian3 或者 CallbackProperty
 * @example
 * const options = {
 *  lng: 108,
 *  lat: 35,
 *  height: 1000
 * }
 * // const options = [108, 35, 1000]
 * const position = makeCartesian3 (options) // return Cesium.Cartesian3
 */
export declare function makeCartesian3(val: Cesium.CallbackProperty | Cesium.Cartesian3 | Cartesian3Option | CartographicInDegreeOption | Array<number> | AnyFunction<any>, ellipsoid?: Cesium.Ellipsoid, isConstant?: boolean): Cesium.Cartesian3 | Cesium.CallbackProperty | Cesium.SampledPositionProperty | Cesium.CompositePositionProperty | Cesium.ConstantPositionProperty | Cesium.TimeIntervalCollectionPositionProperty | undefined;
/**
 * 将数组 [lng, lat, height, ……，lng, lat, height] 转换为 Cesium.Cartesian3 数组
 * @param {Array} val
 * @returns {Array<Cartesian3>}
 */
export declare function makeCartesian3Array(vals: Cesium.CallbackProperty | Array<Cesium.Cartesian3> | Array<Cartesian3Option> | Array<CartographicInDegreeOption> | Array<number> | Array<Array<number>> | AnyFunction<any>, ellipsoid?: Cesium.Ellipsoid, isConstant?: boolean): Array<Cesium.Cartesian3> | Cesium.CallbackProperty | undefined;
/**
 * 将形如 [lng, lat, ……，lng, lat] 数组转换为 Cesium.Cartesian2 数组
 * @param {Array} vals
 * @returns {Array<Cartesian2>}
 */
export declare function makeCartesian2Array(vals: Cesium.CallbackProperty | Array<Cesium.Cartesian2> | Array<Cartesian2Option> | Array<Array<number>> | Array<number> | AnyFunction<any>, isConstant: any): Cesium.CallbackProperty | Array<Cesium.Cartesian2> | undefined;
/**
 * 将对象或数组 转换为 Cesium.Quaternion
 * @param {Object} val
 * @example
 * const options = {x: 0, y: 0, z: 0, w: 0}
 * // const options = [0, 0, 0, 0]
 * const orientation = makeQuaternion(options) // returns Cesium.Quaternion
 */
export declare function makeQuaternion(val: Cesium.CallbackProperty | Cesium.Quaternion | Cartesian4Option | Array<number> | AnyFunction<any>, isConstant?: boolean): Cesium.CallbackProperty | Cesium.Quaternion | Cesium.VelocityOrientationProperty | undefined;
/**
 * 普通数组或对象转 Cesium.PolygonHierarchy 对象。
 * @param {Object|Array} val
 */
export declare function makePolygonHierarchy(val: Cesium.CallbackProperty | Cesium.PolygonHierarchy | PolygonHierarchyOption | Array<Cesium.Cartesian3> | Array<Cartesian3Option> | Array<Array<number>> | AnyFunction<any>, ellipsoid?: Cesium.Ellipsoid, isConstant?: boolean): Cesium.CallbackProperty | Cesium.PolygonHierarchy | PolygonHierarchyOption | undefined;
/**
 * 对象或数组转 Cesium.NearFarScalar。
 * @param {Object} val
 * @returns {NearFarScalar}
 * @example
 * const options = {near: 1000, nearValue: 1.0, far: 10000, farValue: 0.5}
 * // const options = [1000, 1.0, 10000, 1.5]
 * const nearFarScalar = makeNearFarScalar(options)
 */
export declare function makeNearFarScalar(val: Cesium.NearFarScalar | Cesium.CallbackProperty | NearFarScalarOption | Array<number> | AnyFunction<any>, isConstant?: boolean): Cesium.NearFarScalar | Cesium.CallbackProperty | undefined;
/**
 * 对象或数组转 Cesium.DistanceDisplayCondition。
 * @param {Object} val
 * @returns {DistanceDisplayCondition}
 * @example
 * const options = [0, 1000]
 * // const options = {near: 0, far: 1000}
 * const distanceDisplayCondition = makeDistanceDisplayCondition(options) // return Cesium.DistanceDisplayCondition
 */
export declare function makeDistanceDisplayCondition(val: Cesium.DistanceDisplayCondition | Cesium.CallbackProperty | DistanceDisplayConditionOption | Array<number> | AnyFunction<any>, isConstant?: boolean): Cesium.DistanceDisplayCondition | Cesium.CallbackProperty | undefined;
/**
 * 普通对象、数组或字符串转 Cesium.Color。
 * @param {String|Array|Object|Function} val
 * @returns {Color}
 * @example
 * const options = 'red'
 * // const options = [1, 0, 0, 1.0] // r g b a
 * // const options = {red: 255, green: 0, bule: 0, alpha: 255}
 * const color = makeColor(options) // return Cesium.Color
 */
export declare function makeColor(val: Cesium.Color | Cesium.CallbackProperty | string | Array<number> | ColorInByteOption | Cartesian4Option | AnyFunction<any>, isConstant?: boolean): Cesium.Color | Cesium.CallbackProperty | undefined;
export declare function makeColors(vals: Cesium.Color[] | string[] | number[][] | ColorInByteOption[] | Cartesian4Option[]): Cesium.Color[];
/**
 * 普通对象或数组 [r, g, b, a] 或字符串转 MaterialProperty
 * @param {String|Array|Object} val
 */
export declare function makeMaterialProperty(val: Cesium.CallbackProperty | Cesium.Color | Cesium.CheckerboardMaterialProperty | Cesium.ColorMaterialProperty | Cesium.GridMaterialProperty | Cesium.ImageMaterialProperty | Cesium.PolylineArrowMaterialProperty | Cesium.PolylineDashMaterialProperty | Cesium.PolylineGlowMaterialProperty | Cesium.PolylineOutlineMaterialProperty | Cesium.StripeMaterialProperty | MaterialOption | string | Array<number> | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | AnyFunction<any>, isConstant?: boolean): string | Cesium.CallbackProperty | number[] | AnyFunction<any> | Cesium.Color | Cesium.CheckerboardMaterialProperty | Cesium.ColorMaterialProperty | Cesium.GridMaterialProperty | Cesium.ImageMaterialProperty | Cesium.PolylineArrowMaterialProperty | Cesium.PolylineDashMaterialProperty | Cesium.PolylineGlowMaterialProperty | Cesium.PolylineOutlineMaterialProperty | Cesium.StripeMaterialProperty | MaterialOption | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement;
/**
 * 转 Material
 * @param {String|Array|Object} val
 */
export declare function makeMaterial(this: any, val: string | Array<number> | MaterialOption): string | Cesium.CallbackProperty | number[] | AnyFunction<any> | Cesium.Color | Cesium.CheckerboardMaterialProperty | Cesium.ColorMaterialProperty | Cesium.GridMaterialProperty | Cesium.ImageMaterialProperty | Cesium.PolylineArrowMaterialProperty | Cesium.PolylineDashMaterialProperty | Cesium.PolylineGlowMaterialProperty | Cesium.PolylineOutlineMaterialProperty | Cesium.StripeMaterialProperty | MaterialOption | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | Cesium.Material | undefined;
export declare function makeAppearance(this: any, val: Appearances | AppearanceOpts): any;
/**
 * 将对象 {west: number, south: number, east: number, north: number} 或者[west, south, east, north]数组 转 Cesium.Rectangle 对象。
 * @param {Object} val
 * @returns {Rectangle}
 */
export declare function makeRectangle(val: Cesium.Rectangle | Cesium.CallbackProperty | RectangleInDegreeOption | Cartesian4Option | Array<number> | AnyFunction<any>, isConstant?: boolean): Cesium.Rectangle | Cesium.CallbackProperty | Cesium.RectangleGraphics | undefined;
/**
 * 对象或数组转 Cesium.BoundingRectangle。
 * @param {Object} val
 * @returns {Cesium.BoundingRectangle}
 * @example
 * const options = [0, 0, 100, 100]
 * // const options = {x: 0, y: 0, width: 100, height: 100}
 * const boundingRectangle = makeBoundingRectangle(options)
 */
export declare function makeBoundingRectangle(val: Cesium.BoundingRectangle | Cesium.CallbackProperty | BoundingRectangleOption | Array<number> | AnyFunction<any>, isConstant?: boolean): Cesium.BoundingRectangle | Cesium.CallbackProperty | undefined;
/**
 * 普通对象 {normal: number, distance: number} 转 Cesium.Plane 对象。
 * @param {Object} val
 * @returns {Plane}
 */
export declare function makePlane(val: Cesium.CallbackProperty | Cesium.Plane | PlaneOption | Array<any> | AnyFunction<any>, isConstant?: boolean): Cesium.CallbackProperty | Cesium.Plane | Cesium.PlaneGraphics | undefined;
/**
 * 普通对象转平移、旋转、缩放变换对象。
 * @param {*} val
 */
export declare function makeTranslationRotationScale(val: Cesium.TranslationRotationScale | Cesium.CallbackProperty | TranslationRotationScaleOption | AnyFunction<any> | Array<any>, isConstant?: boolean): Cesium.CallbackProperty | TranslationRotationScaleOption;
export declare function makeOptions(this: any, val: any): any;
export declare function captureScreenshot(viewer: Cesium.Viewer): Promise<string>;
export declare function makeCameraOptions(camera: CameraOption, ellipsoid?: Cesium.Ellipsoid): {
    destination: Cesium.Cartesian3 | Cesium.Rectangle | undefined;
    orientation: HeadingPitchRollOption;
};
export declare function setViewerCamera(viewer: Cesium.Viewer, camera: CameraOption): void;
export declare function flyToCamera(viewer: Cesium.Viewer, camera: CameraOption, options?: any): void;
export declare function getGeodesicDistance(start: Cesium.Cartesian3, end: Cesium.Cartesian3, ellipsoid: Cesium.Ellipsoid): number;
export declare function getHeadingPitchRoll(start: Cesium.Cartesian3, end: Cesium.Cartesian3, scene: Cesium.Scene, result?: Array<number>): number[] | undefined;
export declare function getPolylineSegmentEndpoint(start: Cesium.Cartesian3, heading: number, distance: number, ellipsoid: Cesium.Ellipsoid): Cesium.Cartesian3;
export declare function calculateAreaByPostions(positions: Array<Cesium.Cartesian3>): number;
export declare function setViewerCursor(viewer: Cesium.Viewer, cursor: string): void;
export declare function restoreViewerCursor(viewer: Cesium.Viewer, count?: number): void;
export declare function makeJulianDate(val: string | Date | Cesium.JulianDate): Cesium.JulianDate;
