/**
 * WASM Radar Provider Support
 *
 * Handles radar provider registration and handler invocation for WASM plugins.
 * Integrates with Signal K's Radar API at /signalk/v2/api/vessels/self/radars
 */
import { WasmRadarProvider, WasmPluginInstance } from '../types';
/**
 * Registered radar providers from WASM plugins
 * Key: pluginId
 */
export declare const wasmRadarProviders: Map<string, WasmRadarProvider>;
/**
 * Call a WASM radar handler function
 * Handles both AssemblyScript and Rust plugins with Asyncify support for async operations
 */
export declare function callWasmRadarHandler(pluginInstance: WasmPluginInstance, handlerName: string, requestJson: string): Promise<string | null>;
/**
 * Update radar provider references with a newly loaded plugin instance
 */
export declare function updateRadarProviderInstance(pluginId: string, pluginInstance: WasmPluginInstance): void;
/**
 * Clean up radar provider registrations for a plugin
 * @param pluginId The plugin ID
 * @param app The Signal K app (optional, if provided will also unregister from RadarApi)
 */
export declare function cleanupRadarProviders(pluginId: string, app?: any): void;
/**
 * Create the sk_register_radar_provider host binding
 *
 * WASM plugins call this to register as a radar provider.
 * The plugin must export handler functions:
 * - radar_get_radars() -> JSON array of radar IDs
 * - radar_get_radar_info(requestJson) -> RadarInfo JSON
 * - radar_set_power(requestJson) -> boolean success
 * - radar_set_range(requestJson) -> boolean success
 * - radar_set_gain(requestJson) -> boolean success
 * - radar_set_controls(requestJson) -> boolean success
 */
export declare function createRadarProviderBinding(pluginId: string, capabilities: {
    radarProvider?: boolean;
}, app: any, readUtf8String: (ptr: number, len: number) => string): (namePtr: number, nameLen: number) => number;
/**
 * Create the sk_radar_emit_spokes host binding
 *
 * Convenience wrapper for radar plugins to emit binary spoke data.
 * Maps to sk_emit_binary_stream with "radars/{radarId}" stream ID format.
 *
 * @param pluginId - Plugin identifier
 * @param capabilities - Plugin capabilities
 * @param app - SignalK application instance
 * @param readUtf8String - Function to read UTF-8 strings from WASM memory
 * @param readBinaryData - Function to read binary data from WASM memory
 * @returns FFI binding function
 */
export declare function createRadarEmitSpokesBinding(pluginId: string, capabilities: {
    radarProvider?: boolean;
}, app: any, readUtf8String: (ptr: number, len: number) => string, readBinaryData: (ptr: number, len: number) => Buffer): (radarIdPtr: number, radarIdLen: number, spokeDataPtr: number, spokeDataLen: number) => number;
//# sourceMappingURL=radar-provider.d.ts.map