import { NrfDevice } from './Device';
import { Logger } from './Log';
declare enum FirmwareType {
    APP = 0,
    MODEM = 1,
    BOOT = 2
}
declare enum JobExecutionStatus {
    QUEUED = 0,
    IN_PROGRESS = 1,
    FAILED = 2,
    SUCCEEDED = 3,
    TIMED_OUT = 4,
    CANCELED = 5,
    REJECTED = 6,
    DOWNLOADING = 7
}
declare type JobId = string;
declare type FileSize = number;
declare type Host = string;
declare type Path = string;
export declare type Job = [JobId, FirmwareType, FileSize, Host, Path];
export declare class NrfJobsManager {
    private readonly log;
    readonly device: NrfDevice;
    private readonly cache;
    private didSendInitialJobRequest;
    constructor(device: NrfDevice, log: Logger);
    waitForJobs(): Promise<void>;
    requestLatestQueuedJob(): Promise<void>;
    setupJobsListener(): Promise<void>;
    updateJobExecution(id: JobId, status: JobExecutionStatus, message?: string): Promise<void>;
}
export {};
