import { CommandWithContext, Device } from '../../service/device';
import { ActionExecutionResult, DeviceStatus, TSRTimelineContent, Timeline, ViscaOverIPActions, ViscaOverIPOptions } from 'timeline-state-resolver-types';
import { ViscaDevice } from './connection';
import { ViscaValueConverter } from './connection/lib/ViscaValueConverter';
export type ViscaDeviceState = Timeline.TimelineState<TSRTimelineContent>;
export interface ViscaDeviceCommand extends CommandWithContext {
    command: {};
}
export declare class ViscaOverIpDevice extends Device<ViscaOverIPOptions, ViscaDeviceState, ViscaDeviceCommand> {
    protected _terminated: boolean;
    protected connection: ViscaDevice | undefined;
    protected converter: ViscaValueConverter;
    init(options: ViscaOverIPOptions): Promise<boolean>;
    terminate(): Promise<void>;
    get connected(): boolean;
    getStatus(): Omit<DeviceStatus, 'active'>;
    actions: {
        [id in ViscaOverIPActions]: (id: string, payload?: any) => Promise<ActionExecutionResult>;
    };
    private safelyExecuteCommand;
    private safelySendActionCommand;
    convertTimelineStateToDeviceState(state: Timeline.TimelineState<TSRTimelineContent>): ViscaDeviceState;
    diffStates(_oldState: ViscaDeviceState | undefined, _newState: ViscaDeviceState): Array<ViscaDeviceCommand>;
    sendCommand(): Promise<void>;
}
//# sourceMappingURL=index.d.ts.map