import { MarkerPosition } from './enums';
import * as L from 'leaflet';
import { defaultConfig } from './config';
export declare const isTouchDevice: () => boolean;
export declare function isTestEnvironment(): boolean;
/**
 * Utility for polygon bounds.
 */
type ICompass = {
    East: L.LatLngLiteral;
    North: L.LatLngLiteral;
    NorthEast: L.LatLngLiteral;
    NorthWest: L.LatLngLiteral;
    South: L.LatLngLiteral;
    SouthEast: L.LatLngLiteral;
    SouthWest: L.LatLngLiteral;
    West: L.LatLngLiteral;
};
export declare class PolyDrawUtil {
    /**
     * Gets the bounds of the polygon with optional padding.
     * @param polygon Array of LatLng points.
     * @param padding Padding factor.
     * @returns The LatLngBounds.
     */
    static getBounds(polygon: L.LatLngLiteral[], padding?: number): L.LatLngBounds;
}
/**
 * Class for compass directions based on bounds.
 */
export declare class Compass {
    direction: ICompass;
    constructor(minLat?: number, minLng?: number, maxLat?: number, maxLng?: number);
    getDirection(direction: MarkerPosition): L.LatLngLiteral;
    getPositions(startPosition?: MarkerPosition, clockwise?: boolean, addClosingNode?: boolean): number[][];
    private getPositionAsArray;
}
/**
 * Class for calculating perimeter in different units.
 */
export declare class Perimeter {
    metricLength: string;
    metricUnit: string;
    imperialLength: string;
    imperialUnit: string;
    constructor(length: number, config: typeof defaultConfig);
}
/**
 * Class for calculating area in different units.
 */
export declare class Area {
    metricArea: string;
    metricUnit: string;
    imperialArea: string;
    imperialUnit: string;
    constructor(sqrMeterArea: number, config: typeof defaultConfig);
}
export {};
//# sourceMappingURL=utils.d.ts.map