import { ActionExecutionResult, DeviceStatus, Mappings, OSCMessageCommandContent, QuantelActions, QuantelOptions, SomeMappingQuantel, Timeline, TSRTimelineContent } from 'timeline-state-resolver-types';
import { CommandWithContext, Device } from '../../service/device';
import { QuantelCommand, QuantelState } from './types';
export interface OscDeviceState {
    [address: string]: OSCDeviceStateContent;
}
interface OSCDeviceStateContent extends OSCMessageCommandContent {
    fromTlObject: string;
}
export interface QuantelCommandWithContext extends CommandWithContext {
    command: QuantelCommand;
    context: string;
}
export declare class QuantelDevice extends Device<QuantelOptions, QuantelState, QuantelCommandWithContext> {
    /** Setup in init */
    private _quantel;
    /** Setup in init */
    private _quantelManager;
    /** Setup in init */
    private options;
    private _disconnectedSince;
    init(options: QuantelOptions): Promise<boolean>;
    terminate(): Promise<void>;
    convertTimelineStateToDeviceState(timelineState: Timeline.TimelineState<TSRTimelineContent>, mappings: Mappings<SomeMappingQuantel>): QuantelState;
    diffStates(oldState: QuantelState | undefined, newState: QuantelState, mappings: Mappings<SomeMappingQuantel>, currentTime: number): Array<QuantelCommandWithContext>;
    sendCommand({ command, context, timelineObjId }: QuantelCommandWithContext): Promise<any>;
    get connected(): boolean;
    getStatus(): Omit<DeviceStatus, 'active'>;
    readonly actions: {
        [id in QuantelActions]: (id: string, payload?: Record<string, any>) => Promise<ActionExecutionResult>;
    };
}
export {};
//# sourceMappingURL=index.d.ts.map