import { TAGS } from './constants';
import { ISOXMLManager } from '../ISOXMLManager';
import { XMLElement } from '../types';
import { TreatmentZone } from './TreatmentZone';
import { Time } from './Time';
import { OperTechPractice } from './OperTechPractice';
import { WorkerAllocation } from './WorkerAllocation';
import { DeviceAllocation } from './DeviceAllocation';
import { Connection } from './Connection';
import { ProductAllocation } from './ProductAllocation';
import { DataLogTrigger } from './DataLogTrigger';
import { CommentAllocation } from './CommentAllocation';
import { TimeLog } from './TimeLog';
import { Grid } from './Grid';
import { ControlAssignment } from './ControlAssignment';
import { GuidanceAllocation } from './GuidanceAllocation';
import { Entity, EntityConstructor, ISOXMLReference } from '../types';
export declare enum TaskTaskStatusEnum {
    Planned = "1",
    Running = "2",
    Paused = "3",
    Completed = "4",
    Template = "5",
    Canceled = "6"
}
export type TaskAttributes = {
    TaskDesignator?: string;
    CustomerIdRef?: ISOXMLReference;
    FarmIdRef?: ISOXMLReference;
    PartfieldIdRef?: ISOXMLReference;
    ResponsibleWorkerIdRef?: ISOXMLReference;
    TaskStatus: TaskTaskStatusEnum;
    DefaultTreatmentZoneCode?: number;
    PositionLostTreatmentZoneCode?: number;
    OutOfFieldTreatmentZoneCode?: number;
    TreatmentZone?: TreatmentZone[];
    Time?: Time[];
    OperTechPractice?: OperTechPractice[];
    WorkerAllocation?: WorkerAllocation[];
    DeviceAllocation?: DeviceAllocation[];
    Connection?: Connection[];
    ProductAllocation?: ProductAllocation[];
    DataLogTrigger?: DataLogTrigger[];
    CommentAllocation?: CommentAllocation[];
    TimeLog?: TimeLog[];
    Grid?: Grid[];
    ControlAssignment?: ControlAssignment[];
    GuidanceAllocation?: GuidanceAllocation[];
    ProprietaryAttributes?: {
        [name: string]: string;
    };
    ProprietaryTags?: {
        [tag: string]: XMLElement[];
    };
};
export declare class Task implements Entity {
    attributes: TaskAttributes;
    isoxmlManager: ISOXMLManager;
    tag: TAGS;
    constructor(attributes: TaskAttributes, isoxmlManager: ISOXMLManager);
    static fromXML(xml: XMLElement, isoxmlManager: ISOXMLManager, internalId?: string, targetClass?: EntityConstructor): Promise<Entity>;
    toXML(): XMLElement;
}
