import { LocationAccuracy } from '@awesome-cordova-plugins/location-accuracy/ngx';
import { Geolocation } from '@awesome-cordova-plugins/geolocation/ngx';
import { Diagnostic } from '@awesome-cordova-plugins/diagnostic/ngx';
import { IDeviceVariableOperation } from '@wm/variables';
import { App } from '@wm/core';
/**
 * This class handles 'getCurrentGeoPosition' device operation.
 */
export declare class CurrentGeoPositionOperation implements IDeviceVariableOperation {
    private app;
    private geoLocation;
    private locationAccuracyService;
    private diagnosticService;
    readonly name = "getCurrentGeoPosition";
    readonly model: {
        coords: {
            latitude: number;
            longitude: number;
            altitude: number;
            accuracy: number;
            altitudeAccuracy: number;
            heading: number;
            speed: number;
        };
        timestamp: number;
    };
    readonly properties: ({
        target: string;
        type: string;
        value: boolean;
        hide: boolean;
        dataBinding?: undefined;
    } | {
        target: string;
        type: string;
        value: boolean;
        dataBinding: boolean;
        hide?: undefined;
    } | {
        target: string;
        type: string;
        value: number;
        dataBinding: boolean;
        hide?: undefined;
    })[];
    readonly requiredCordovaPlugins: string[];
    private lastKnownPosition;
    private waitingQueue;
    private watchId;
    private locationRequestedAlready;
    private previousPermissionStatus;
    private currentPermissionStatus;
    private options;
    constructor(app: App, geoLocation: Geolocation, locationAccuracyService: LocationAccuracy, diagnosticService: Diagnostic);
    private watchPosition;
    private geoLocationService;
    private requestLocationService;
    private handleLocationAuthorizationStatus;
    private requestLocationAuthorization;
    private requestLocationAccuracy;
    private onLocationGranted;
    invoke(variable: any, options: any, dataBindings: Map<string, any>): Promise<any>;
}
