import { IRouter } from 'express';
import { WithSecurityStrategy } from '../../security';
import { SignalKMessageHub } from '../../app';
import { AutopilotProvider, Value, SourceRef } from '@signalk/server-api';
interface AutopilotApplication extends WithSecurityStrategy, SignalKMessageHub, IRouter {
}
export declare class AutopilotApi {
    private server;
    private autopilotProviders;
    private defaultProviderId?;
    private defaultDeviceId?;
    private deviceToProvider;
    private settings;
    constructor(server: AutopilotApplication);
    start(): Promise<void>;
    register(pluginId: string, provider: AutopilotProvider, devices: string[]): void;
    unRegister(pluginId: string): void;
    /** Emit updates from autopilot device as `steering.autopilot.*` deltas.
     *  This should be used by provider plugins to:
     *   - Ensure API state is consistant
     *   - trigger the sending of deltas.
     */
    apUpdate(pluginId: string, deviceId: SourceRef | undefined, apInfo: {
        [path: string]: Value;
    }): void;
    private updateAllowed;
    private initApiEndpoints;
    private useProvider;
    private getDevices;
    /** Initialises the value of default device / provider.
     * If id is not supplied sets first registered device as the default.
     **/
    private initDefaults;
    private buildPathValue;
    private emitUpdates;
}
export {};
//# sourceMappingURL=index.d.ts.map