import { OnDestroy, OnInit } from '@angular/core';
import { MatExpansionPanel } from '@angular/material/expansion';
import { AbstractPanelWithHeaderBindingComponent } from '../abstract/panel-with-header-binding';
import { HeaderColumn } from '../../header/models/header-column';
import { LoggerService } from '../../logger/services/logger.service';
import { TextField } from '../../data-fields/text-field/models/text-field';
import { DateTimeField } from '../../data-fields/date-time-field/models/date-time-field';
import { Behavior } from '../../data-fields/models/behavior';
import { Net } from '../../process/net';
import { TranslateService } from '@ngx-translate/core';
import { WorkflowViewService } from '../../view/workflow-view/workflow-view.service';
import { FeaturedValue } from '../abstract/featured-value';
import { PetriNetResourceService } from '../../resources/engine-endpoint/petri-net-resource.service';
import { OverflowService } from '../../header/services/overflow.service';
import * as i0 from "@angular/core";
export interface WorkflowPanelContent {
    netIdentifier: TextField;
    title: TextField;
    version: TextField;
    author: TextField;
    uploaded: DateTimeField;
}
export declare abstract class AbstractWorkflowPanelComponent extends AbstractPanelWithHeaderBindingComponent implements OnInit, OnDestroy {
    protected _log: LoggerService;
    protected _translate: TranslateService;
    protected _workflowService: WorkflowViewService;
    protected _petriNetResource: PetriNetResourceService;
    protected _overflowService: OverflowService;
    workflow: Net;
    responsiveBody: boolean;
    showDeleteMenu: boolean;
    first: boolean;
    last: boolean;
    panelRef: MatExpansionPanel;
    panelContent: WorkflowPanelContent;
    private _subscription;
    private readonly TRANSLATION_NET;
    private readonly TRANSLATION_TITLE;
    private readonly TRANSLATION_VERSION;
    private readonly TRANSLATION_AUTHOR;
    private readonly TRANSLATION_UPLOAD;
    protected dataFieldsBehaviour: Behavior;
    protected constructor(_log: LoggerService, _translate: TranslateService, _workflowService: WorkflowViewService, _petriNetResource: PetriNetResourceService, _overflowService: OverflowService);
    ngOnInit(): void;
    ngOnDestroy(): void;
    show(event: MouseEvent): boolean;
    collapse(): void;
    setPanelRef(panelRef: MatExpansionPanel): void;
    /**
     * Handles the logic that should be executed when the "delete workflow" button is clicked.
     *
     * Calls the appropriate method in the {@link WorkflowViewService}.
     */
    deleteWorkflow(): void;
    /**
     * Handles the logic that should be executed when the "download workflow" button is clicked.
     *
     * Calls the appropriate method in the {@link WorkflowViewService}.
     */
    downloadNetFile(): void;
    downloadViaAnchor(blob: Blob): void;
    /**
     * Populate data fields group for every petri net model
     */
    protected createPanelContent(): WorkflowPanelContent;
    protected resolveFeaturedFieldsValues(): void;
    protected getFeaturedMetaValue(selectedHeader: HeaderColumn): FeaturedValue;
    protected getFeaturedImmediateValue(selectedHeader: HeaderColumn): FeaturedValue;
    static ɵfac: i0.ɵɵFactoryDeclaration<AbstractWorkflowPanelComponent, [null, null, null, null, { optional: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AbstractWorkflowPanelComponent, "ncc-abstract-workflow-panel", never, { "workflow": { "alias": "workflow"; "required": false; }; "responsiveBody": { "alias": "responsiveBody"; "required": false; }; "showDeleteMenu": { "alias": "showDeleteMenu"; "required": false; }; "first": { "alias": "first"; "required": false; }; "last": { "alias": "last"; "required": false; }; }, {}, never, never, false, never>;
}
