import { AddJobAttachmentResponse, AssignedType, CreateJobOverrides, CreateJobsResponse, Job, JobAttachment, JobAttachmentDetails, JobComment, JobDependencyDetails, JobHoldDetails, JobRequestOptions, UpdateJobOverrides } from './support/job';
import { JobStatistics, JobStatisticsDetails, Query, QueryResult } from './support/query';
import { DiagramDetails } from './support/jobTemplate';
import { JobActionResponse } from './support/job-action-response';
import { ConfigInfo } from './manager.factory';
import { BaseManager } from './base-manager';
import { ProjectInfo } from './support/messages';
import { JobHistory } from './support/jobHistory';
import Geometry from '@arcgis/core/geometry/Geometry';
import { TokenGenerator } from './utils/token.generator';
export declare class JobsManager extends BaseManager {
    private jobsApi;
    constructor();
    initialize(config: ConfigInfo, tokenGenerator: TokenGenerator): Promise<void>;
    createJobs(jobTemplateId: string, jobOverrides?: CreateJobOverrides): Promise<CreateJobsResponse>;
    deleteJobs(jobIds: string[]): Promise<boolean>;
    getJob(jobId: string, options?: JobRequestOptions): Promise<Job>;
    getJobLocation(jobId: string): Promise<Geometry>;
    setJobLocation(jobId: string, geometry: Geometry): Promise<boolean>;
    getJobHistory(jobId: string): Promise<JobHistory[]>;
    updateJob(jobId: string, jobUpdates: UpdateJobOverrides, allowRunningStepId?: string): Promise<boolean>;
    closeJobs(jobIds: string[]): Promise<boolean>;
    upgradeJobs(jobIds: string[]): Promise<boolean>;
    reopenJobs(jobIds: string[]): Promise<boolean>;
    private manageJobs;
    queryJobs(query: Query): Promise<QueryResult>;
    calculateJobStatistics(params: JobStatisticsDetails): Promise<JobStatistics>;
    getJobDiagram(jobId: string): Promise<DiagramDetails>;
    addAttachment(params: JobAttachmentDetails): Promise<AddJobAttachmentResponse>;
    addAttachmentLinked(params: JobAttachmentDetails): Promise<AddJobAttachmentResponse>;
    updateAttachment(params: JobAttachmentDetails): Promise<boolean>;
    deleteAttachment(jobId: string, attachmentId: string): Promise<boolean>;
    getAttachments(jobId: string): Promise<JobAttachment[]>;
    getAttachmentBody(jobId: string, attachmentId: string): Promise<Blob>;
    getAttachmentUrl(jobId: string, attachmentId: string, includeToken?: boolean): Promise<string>;
    addJobComment(jobId: string, comment: string): Promise<string>;
    getJobComments(jobId: string): Promise<JobComment[]>;
    assignCurrentStep(jobId: string, assignedTo: string, assignedType: AssignedType): Promise<boolean>;
    assignStep(jobId: string, stepId: string, assignedTo: string, assignedType: AssignedType): Promise<boolean>;
    startSteps(jobId: string, stepIds: Array<string>): Promise<JobActionResponse>;
    stopSteps(jobId: string, stepIds: Array<string>): Promise<JobActionResponse>;
    refreshSteps(jobId: string, stepIds: Array<string>): Promise<JobActionResponse>;
    finishSteps(jobId: string, stepIds: Array<string>): Promise<JobActionResponse>;
    addHolds(params: JobHoldDetails): Promise<JobActionResponse>;
    releaseHolds(params: JobHoldDetails): Promise<JobActionResponse>;
    addDependency(params: JobDependencyDetails): Promise<JobActionResponse>;
    releaseDependency(params: JobDependencyDetails): Promise<JobActionResponse>;
    setCurrentStep(jobId: string, stepId: string): Promise<JobActionResponse>;
    getProProjectItem(jobId: string, stepId: string, projectInfo: ProjectInfo): Promise<any>;
    private getEsriRequest;
    private getItemInfo;
    private getPortalItemUrl;
    private getPortalUrl;
    private executeJobAction;
    private getJobResult;
    private getQueryResult;
}
