import { ChildTask, PreparationStatus, Quote, Run, Task, TaskAutomaticallyCancelled, TaskHistory, TaskNote } from '@bringg/types';
import { CommonOptions } from '../../Core/RouteGenerator';
import { ItemFields } from '../../data-entity';
import Session from '../../Services/Identity/Session';
import { BroadcastToDriversResponse, HasDefectiveGeocodeResponse, ItemsKeySetPaginationResponse, SuccessResponse, TaskGeneralResponse, TaskLocation, TasksCsvImportResponse, TasksKeysetPaginationRequest, WayPointDeleteResponse } from '../Tasks.consts';
export default class TasksService {
    private readonly service;
    constructor(session: Session);
    load(id: number): Promise<Task>;
    loadAll(): Promise<Task[]>;
    loadPlanningTasks(request: TasksKeysetPaginationRequest, commonOptions?: CommonOptions): Promise<ItemsKeySetPaginationResponse>;
    loadOpenTasks(request: TasksKeysetPaginationRequest, commonOptions?: CommonOptions): Promise<ItemsKeySetPaginationResponse>;
    loadInvalid(columns?: string[], commonOptions?: CommonOptions): Promise<Task[]>;
    broadcastToDrivers(id: number, userIds: number[], message: string, commonOptions?: CommonOptions): Promise<BroadcastToDriversResponse>;
    acknowledgeTask(id: number, commonOptions?: CommonOptions): Promise<Task>;
    releaseToDrivers(ids: number[], commonOptions?: CommonOptions): Promise<SuccessResponse>;
    moveToPlanning(ids: number[], commonOptions?: CommonOptions): Promise<SuccessResponse>;
    massCancel(taskIds: number[], reasonId: number, text?: string, automaticallyCancelled?: TaskAutomaticallyCancelled, commonOptions?: CommonOptions): Promise<boolean>;
    massAssign(user_id: number, ids: number[], options: {}, targetRun?: Partial<Run>): Promise<TaskGeneralResponse>;
    massUnassign(ids: number[], options: {}): Promise<TaskGeneralResponse>;
    cancel(id: number): Promise<Task>;
    update(task: Partial<Task>): Promise<Task>;
    updatePreparationStatus(taskId: number, preparationStatus: PreparationStatus, commonOptions?: CommonOptions): Promise<Task>;
    rescheduleVirtualTasks(taskIds: number[], noLaterThan: string, noEarlierThan: string): Promise<number[]>;
    batchLoad(ids: number[], fields: ItemFields, options?: {}): Promise<Task[]>;
    duplicate(taskId: number, commonOptions?: CommonOptions): Promise<Task>;
    getChildTasks(taskId: number, commonOptions?: CommonOptions): Promise<ChildTask[]>;
    unlock(taskIds: number[], commonOptions?: CommonOptions): Promise<boolean>;
    lock(taskIds: number[], commonOptions?: CommonOptions): Promise<boolean>;
    finish(id: number, commonOptions?: CommonOptions): Promise<Task>;
    rescheduleCancelled(id: number, commonOptions?: CommonOptions): Promise<any>;
    getRescheduleQuote(id: number): Promise<Quote[]>;
    addTaskNote: (taskId: number, wayPointId: number, note?: string, type?: string, image?: string, hiddenFromDrivers?: boolean, commonOptions?: CommonOptions) => Promise<TaskNote>;
    getLocations(id: number): Promise<TaskLocation[]>;
    deleteWayPoint(taskId: number, wayPointId: number): Promise<WayPointDeleteResponse>;
    importTasksCsv(file: Blob): Promise<TasksCsvImportResponse>;
    activityLog(id: number): Promise<TaskHistory[]>;
    massDeleteGroups(groupLeaderTaskIds: number[]): Promise<boolean>;
    hasDefectiveGeocode(): Promise<HasDefectiveGeocodeResponse>;
}
