import { Observable } from 'rxjs';
import { ComponentModel, ComponentService } from '@versatiledatakit/shared';
import { DataJobUpdateTasks } from '../state/tasks';
import { DataJobExecutions } from '../model';
import * as i0 from "@angular/core";
export declare abstract class DataJobsService {
    /**
     * ** Trigger Action for loading DataJobs data.
     */
    abstract loadJobs(model: ComponentModel): void;
    /**
     * ** Trigger Actions to load all necessary data for Data Job.
     */
    abstract loadJob(model: ComponentModel): void;
    /**
     * ** Trigger Action for loading Data Job executions data.
     */
    abstract loadJobExecutions(model: ComponentModel): void;
    /**
     * ** Trigger Action update Job.
     */
    abstract updateJob(model: ComponentModel, task: DataJobUpdateTasks): void;
    /**
     * ** Returns Observable(Subject) that fires when Running Job Execution ID change.
     */
    abstract getNotifiedForRunningJobExecutionId(): Observable<string>;
    /**
     * ** Send new event to Observable stream.
     */
    abstract notifyForRunningJobExecutionId(id: string): void;
    /**
     * ** Returns Observable(Subject) that fires with new Job Executions.
     */
    abstract getNotifiedForJobExecutions(): Observable<DataJobExecutions>;
    /**
     * ** Send new event to Observable stream.
     */
    abstract notifyForJobExecutions(executions: DataJobExecutions): void;
    /**
     * ** Returns Observable(BehaviorSubject) that fires with team name implicitly.
     */
    abstract getNotifiedForTeamImplicitly(): Observable<string>;
    /**
     * ** Send new event to Observable stream.
     */
    abstract notifyForTeamImplicitly(team: string): void;
}
export declare class DataJobsServiceImpl extends DataJobsService {
    private readonly componentService;
    private readonly _runningJobExecutionId;
    private readonly _jobExecutions;
    private readonly _implicitTeam;
    /**
     * ** Constructor.
     */
    constructor(componentService: ComponentService);
    /**
     * @inheritDoc
     */
    loadJobs(model: ComponentModel): void;
    loadJob(model: ComponentModel): void;
    /**
     * @inheritDoc
     */
    loadJobExecutions(model: ComponentModel): void;
    /**
     * @inheritDoc
     */
    updateJob(model: ComponentModel, task: DataJobUpdateTasks): void;
    /**
     * @inheritDoc
     */
    getNotifiedForJobExecutions(): Observable<DataJobExecutions>;
    /**
     * @inheritDoc
     */
    notifyForJobExecutions(executions: DataJobExecutions): void;
    /**
     * @inheritDoc
     */
    getNotifiedForRunningJobExecutionId(): Observable<string>;
    /**
     * @inheritDoc
     */
    notifyForRunningJobExecutionId(id: string): void;
    /**
     * @inheritDoc
     */
    getNotifiedForTeamImplicitly(): Observable<string>;
    /**
     * @inheritDoc
     */
    notifyForTeamImplicitly(team: string): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DataJobsServiceImpl, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DataJobsServiceImpl>;
}
