import { IFindOptions } from '../IdentityMixin';
import IdentityMixin from '../IdentityMixin';
import { TaskWatcher } from './TaskWatcher';
export interface ITaskProps {
    id: string;
    name: string;
    progress?: number;
    delay?: string;
    timestamp?: string;
    attemptsMade?: string;
    stacktrace?: string;
    returnvalue?: string;
    finishedOn?: string;
    processedOn?: string;
    user: string;
}
export default class Task extends IdentityMixin implements ITaskProps {
    static watch(jobId: string): Promise<TaskWatcher>;
    private static basePath;
    static find(findOptions?: string | IFindOptions): Promise<any>;
    static fromId(id: string): Promise<Task>;
    static fromJSON(props: ITaskProps): Task;
    private basePath;
    private _id;
    get id(): string;
    private _name;
    get name(): string;
    private _progress?;
    get progress(): number | undefined;
    private _delay?;
    get delay(): string | undefined;
    private _timestamp?;
    get timestamp(): string | undefined;
    private _attemptsMade?;
    get attemptsMade(): string | undefined;
    private _stacktrace?;
    get stacktrace(): string | undefined;
    private _returnvalue?;
    get returnvalue(): string | undefined;
    private _finishedOn?;
    get finishedOn(): string | undefined;
    private _processedOn?;
    get processedOn(): string | undefined;
    private _user;
    get user(): string;
    constructor(props: ITaskProps);
    toJSON(): {
        id: string;
        name: string;
        progress: number | undefined;
        delay: string | undefined;
        timestamp: string | undefined;
        attemptsMade: string | undefined;
        stacktrace: string | undefined;
        returnvalue: string | undefined;
        finishedOn: string | undefined;
        processedOn: string | undefined;
        user: string;
    };
    getProgress(): Promise<any>;
    getLogs(): Promise<any>;
}
