import { Observable } from 'rxjs';
import { HubConfig, IMotorsFeature, IOutboundMessenger, PortCommandExecutionStatus, ServoCommandOptions, StartPowerOptions, StartSpeedOptions } from '../../hub';
import { IMotorCommandsOutboundMessageFactory } from './i-motor-commands-outbound-message-factory';
export declare class MotorsFeature implements IMotorsFeature {
    private readonly messenger;
    private readonly portOutputCommandOutboundMessageFactoryService;
    private readonly config;
    constructor(messenger: IOutboundMessenger, portOutputCommandOutboundMessageFactoryService: IMotorCommandsOutboundMessageFactory, config: HubConfig);
    setAccelerationTime(portId: number, timeMs: number): Observable<PortCommandExecutionStatus>;
    setDecelerationTime(portId: number, timeMs: number): Observable<PortCommandExecutionStatus>;
    startPower(portId: number, power: number, powerModeId: number, options?: StartPowerOptions): Observable<PortCommandExecutionStatus>;
    startSpeed(portId: number, speed: number, options?: StartSpeedOptions): Observable<PortCommandExecutionStatus>;
    setSpeedSynchronized(virtualPortId: number, speed1: number, speed2: number, options?: StartSpeedOptions): Observable<PortCommandExecutionStatus>;
    goToPosition(portId: number, absoluteDegree: number, options?: ServoCommandOptions): Observable<PortCommandExecutionStatus>;
    goToPositionSynchronized(virtualPortId: number, targetDegree1: number, targetDegree2: number, options?: ServoCommandOptions): Observable<PortCommandExecutionStatus>;
    setZeroPositionRelativeToCurrentPosition(portId: number, offset: number, positionModeId?: number): Observable<PortCommandExecutionStatus>;
    rotateByDegree(portId: number, degree: number, options?: ServoCommandOptions): Observable<PortCommandExecutionStatus>;
    private execute;
}
