// Type definitions for cordova-plugin-ibeacon v3.3.0
// Project: https://github.com/petermetz/cordova-plugin-ibeacon
// Definitions by: Markus Wagner
// Definitions: https://github.com/borisyankov/DefinitelyTyped
///
interface CordovaPlugins {
locationManager: BeaconPlugin.LocationManager;
}
declare module BeaconPlugin {
/**
* Beacon Plugin.
*/
export interface LocationManager {
delegate: Delegate;
BeaconRegion: BeaconRegion;
onDomDelegateReady(): void;
startMonitoringForRegion(region: Region): Q.Promise;
stopMonitoringForRegion(region: Region): Q.Promise;
requestStateForRegion(region: Region): Q.Promise;
startRangingBeaconsInRegion(region: Region): Q.Promise;
stopRangingBeaconsInRegion(region: Region): Q.Promise;
getAuthorizationStatus(): Q.Promise;
requestWhenInUseAuthorization(): Q.Promise;
requestAlwaysAuthorization(): Q.Promise;
getMonitoredRegions(): Q.Promise;
getRangedRegions(): Q.Promise;
isRangingAvailable(): Q.Promise;
isMonitoringAvailableForClass(region: Region): Q.Promise;
startAdvertising(region: Region, measuredPower: boolean): Q.Promise;
stopAdvertising(): Q.Promise;
isAdvertisingAvailable(): Q.Promise;
isAdvertising(): Q.Promise;
disableDebugLogs(): Q.Promise;
enableDebugNotifications(): Q.Promise;
disableDebugNotifications(): Q.Promise;
enableDebugLogs(): Q.Promise;
isBluetoothEnabled(): Q.Promise;
enableBluetooth(): Q.Promise;
disableBluetooth(): Q.Promise;
appendToDeviceLog(message: string): Q.Promise;
}
export interface PluginResult {
eventType: string;
region: Region;
beacons: Beacon[];
authorizationStatus: string;
state: string;
}
export interface Delegate {
didDetermineStateForRegion(pluginResult: PluginResult): void;
didStartMonitoringForRegion(pluginResult: PluginResult): void;
didExitRegion(pluginResult: PluginResult): void;
didEnterRegion(pluginResult: PluginResult): void;
didRangeBeaconsInRegion(pluginResult: PluginResult): void;
peripheralManagerDidStartAdvertising(pluginResult: PluginResult): void;
peripheralManagerDidUpdateState(pluginResult: PluginResult): void;
didChangeAuthorizationStatus(authorizationStatus: string): void;
monitoringDidFailForRegionWithError(pluginResult: PluginResult): void;
}
export interface Region {
identifier: string;
new (identifier: string): Region;
}
export interface BeaconRegion extends Region {
uuid: string;
major: string;
minor: string;
notifyEntryStateOnDisplay: boolean;
new (identifier: string, uuid: string, major?: number, minor?: number, notifyEntryStateOnDisplay?: boolean): BeaconRegion;
}
export interface CircularRegion extends Region {
latitude: number;
longitude: number;
radius: number;
new (identifier: string, latitude: number, longitude: number, radius: number): CircularRegion;
}
export interface Beacon {
uuid: string;
major: string;
minor: string;
proximity: string;
tx: number;
rssi: number;
accuracy: number;
}
}