///
import { FlatCoord, Coord, Path, MultiPath, CoordPath, IBounds, BoundsLike, NativeBounds } from '@bespunky/angular-google-maps/core';
import { MockBounds } from '../mocks/mock-bounds';
export declare type FlexibleDummy = {
typeName: string;
value: T;
};
export declare type FlexibleDummies = FlexibleDummy[];
/**
* The following are the geometry types supported by the library.
* They have been assigned with dummy values for testing.
*/
/** Dummy coord for testing. See `produceCoordSpecs()`. */
export declare const flatCoord: FlatCoord;
/** Dummy coord for testing. See `produceCoordSpecs()`. */
export declare const literalCoord: google.maps.LatLngLiteral;
/** Dummy coord for testing. See `produceCoordSpecs()`. */
export declare const latLngCoord: google.maps.LatLng;
/** All dummy coords for testing combined into an array. */
export declare const allDummyCoords: Coord[];
/** Dummy single-path for testing. See `produceSinglePathSpecs()`. For bounds: [0] is defined as south-west, [length-1] is defined as north-east. */
export declare const flatPath: FlatCoord[];
/** Dummy single-path for testing. See `produceSinglePathSpecs()`. For bounds: [0] is defined as south-west, [length-1] is defined as north-east. */
export declare const literalPath: google.maps.LatLngLiteral[];
/** Dummy single-path for testing. See `produceSinglePathSpecs()`. For bounds: [0] is defined as south-west, [length-1] is defined as north-east. */
export declare const latLngPath: google.maps.LatLng[];
/** Dummy single-path for testing. See `produceSinglePathSpecs()`. For bounds: [0] is defined as south-west, [length-1] is defined as north-east. */
export declare const mvcPath: google.maps.MVCArray;
/** Dummy single-path for testing. See `produceSinglePathSpecs()`. For bounds: [0] is defined as south-west, [length-1] is defined as north-east. */
export declare const linearRingPath: google.maps.Data.LinearRing;
/** All dummy single paths for testing combined into an array. */
export declare const allDummySinglePaths: (google.maps.LatLng[] | google.maps.LatLngLiteral[] | google.maps.Data.LinearRing | FlatCoord[] | google.maps.MVCArray)[];
/** Dummy multi-path for testing. See `produceMultiPathSpecs()`. */
export declare const flatMultiPath: FlatCoord[][];
/** Dummy multi-path for testing. See `produceMultiPathSpecs()`. */
export declare const literalMultiPath: google.maps.LatLngLiteral[][];
/** Dummy multi-path for testing. See `produceMultiPathSpecs()`. */
export declare const latLngMultiPath: google.maps.LatLng[][];
/** Dummy multi-path for testing. See `produceMultiPathSpecs()`. */
export declare const linearRingMultiPath: google.maps.Data.LinearRing[];
/** Dummy multi-path for testing. See `produceMultiPathSpecs()`. */
export declare const mvcMultiPath: google.maps.MVCArray>;
/** Dummy multi-path for testing. See `produceMultiPathSpecs()`. */
export declare const mvcMultiLinearRingPath: google.maps.MVCArray;
/** All dummy single paths for testing combined into an array. */
export declare const allDummyMultiPaths: (google.maps.LatLng[][] | google.maps.LatLngLiteral[][] | google.maps.Data.LinearRing[] | FlatCoord[][] | google.maps.MVCArray> | google.maps.MVCArray)[];
/** Dummy bounds for testing. See `produceNativeBoundsSpecs()` and `produceIBoundsSpecs()`. */
export declare const latLngBounds: google.maps.LatLngBounds;
/** Dummy bounds for testing. See `produceNativeBoundsSpecs()` and `produceIBoundsSpecs()`. */
export declare const literalBounds: google.maps.LatLngBoundsLiteral;
/** Dummy bounds for testing. See `produceNativeBoundsSpecs()` and `produceIBoundsSpecs()`. */
export declare const iBounds: MockBounds;
/** The south-west coord of the dummy testing paths. */
export declare const southWest: FlatCoord;
/** The north-east coord of the dummy testing paths. */
export declare const northEast: FlatCoord;
/** All dummy bounds for testing combined into an array. */
export declare const allDummyBounds: (google.maps.LatLngBounds | google.maps.LatLngBoundsLiteral | MockBounds)[];
/** Dummy geometry feature for testing. See `produceDataGeometrySpecs()`. */
export declare const dataPoint: google.maps.Data.Point;
/** Dummy geometry feature for testing. See `produceDataGeometrySpecs()`. */
export declare const dataPolygon: google.maps.Data.Polygon;
/** All dummy geometry features for testing combined into an array. */
export declare const allDummyDataGeometries: (google.maps.Data.Point | google.maps.Data.Polygon)[];
/** All supported BoundsLike dummy values for testing combined into an array. */
export declare const allBoundsLike: FlexibleDummies;
/**
* Produces a spec for each supported coord type and runs the test against the coord.
*
* @export
* @param {string} expectation Format is `should for a `.
* @param {(value: Coord) => void} test The test to perform on the coord.
*/
export declare function produceCoordSpecs(expectation: string, test: (coord: Coord) => void): void;
/**
* Produces a spec for each supported single path type and runs the test against the path.
*
* @export
* @param {string} expectation Format is `should for a `.
* @param {(value: Path) => void} test The test to perform on the path.
*/
export declare function produceSinglePathSpecs(expectation: string, test: (path: Path) => void): void;
/**
* Produces a spec for each supported multi path type and runs the test against the path.
*
* @export
* @param {string} expectation Format is `should for a `.
* @param {(value: MultiPath) => void} test The test to perform on the path.
*/
export declare function produceMultiPathSpecs(expectation: string, test: (multiPath: MultiPath) => void): void;
/**
* Produces a spec for each supported path type (single and multi paths) and runs the test against the path.
*
* @export
* @param {string} expectation Format is `should for a `.
* @param {(path: CoordPath) => void} test The test to perform on the path.
*/
export declare function producePathSpecs(expectation: string, test: (path: CoordPath) => void): void;
/**
* Produces a spec for each supported native bounds types and runs the test against the bounds.
*
* @export
* @param {string} expectation Format is `should for a `.
* @param {(boundable: IBounds) => void} test The test to perform on the bounds object.
*/
export declare function produceNativeBoundsSpecs(expectation: string, test: (bounds: NativeBounds) => void): void;
/**
* Produces a spec for each supported IBounds implementing types and runs the test against the implementers.
*
* @export
* @param {string} expectation Format is `should for a `.
* @param {(boundable: IBounds) => void} test The test to perform on the IBounds implementer.
*/
export declare function produceIBoundsSpecs(expectation: string, test: (boundable: IBounds) => void): void;
/**
* Produces a spec for each supported data layer geometry type and runs the test against the geometry.
*
* @export
* @param {string} expectation Format is `should for a `.
* @param {(geo: google.maps.Data.Geometry) => void} test The test to perform on the geometry.
*/
export declare function produceDataGeometrySpecs(expectation: string, test: (geo: google.maps.Data.Geometry) => void): void;
/**
* Produces a spec for each supported BoundsLike geometry type and runs the test against the geometry.
*
* @export
* @param {string} expectation Format is `should for a `.
* @param {(element: BoundsLike) => void} test The test to perform on the bounds like element.
* @param {string[]} exclude (Optional) Type names of bounds like object to exclude from the specs. Example: `['literal coord', 'LatLng coord']`.
*/
export declare function produceBoundsLikeSpecs(expectation: string, test: (value: BoundsLike) => void, exclude?: string[]): void;
export declare function produceFlexibleDummiesSpecs(flexibles: FlexibleDummies, flexibleType: string, expectation: string, test: (value: T) => void, exclude?: string[]): void;