import { Observable } from 'rxjs';
import { PetriNet } from '../interface/petri-net';
import { Params, ProviderProgress, ResourceProvider } from '../resource-provider.service';
import { ConfigurationService } from '../../configuration/configuration.service';
import Transition from '../../process/transition';
import Transaction from '../../process/transaction';
import { EventOutcomeMessageResource, MessageResource } from '../interface/message-resource';
import { PetriNetReference } from '../interface/petri-net-reference';
import { PetriNetRequestBody } from '../interface/petri-net-request-body';
import { Page } from '../interface/page';
import { AbstractResourceService } from '../abstract-endpoint/abstract-resource.service';
import RolesAndPermissions from '../../process/rolesAndPermissions';
import * as i0 from "@angular/core";
export declare class PetriNetResourceService extends AbstractResourceService {
    constructor(provider: ResourceProvider, configService: ConfigurationService);
    /**
     * Get All Using Petri Net
     *
     * **Request Type:** GET
     *
     * **Request URL:** {{baseUrl}}/api/petrinet
     */
    getAll(params?: Params): Observable<Array<PetriNetReference>>;
    /**
     * Get Data Field References Using
     *
     * **Request Type:** POST
     *
     * **Request URL:** {{baseUrl}}/api/petrinet/data
     */
    getDataPetriNet(body: object): Observable<any>;
    /**
     * Get Transition References Using
     *
     * **Request Type:** GET
     *
     * **Request URL:** {{baseUrl}}/api/petrinet/transitions
     */
    getPetriNetTransitions(netId: string): Observable<Array<Transition>>;
    /**
     * Get Transaction References Using
     *
     * **Request Type:** GET
     *
     * **Request URL:** {{baseUrl}}/api/petrinet/{id}/transactions
     */
    getPetriNetTransactions(netId: string, params?: Params): Observable<Array<Transaction>>;
    /**
     * Get Roles References Using
     *
     * **Request Type:** GET
     *
     * **Request URL:** {{baseUrl}}/api/petrinet/{id}/roles
     */
    getPetriNetRoles(netId: string, params?: Params): Observable<RolesAndPermissions>;
    /**
     * get Net File
     *
     * **Request Type:** GET
     *
     * **Request URL:** {{baseUrl}}/api/petrinet/{netId}/file
     */
    getNetFile(netId: string): Observable<ProviderProgress | Blob>;
    /**
     * get One Net
     *
     * **Request Type:** GET
     *
     * **Request URL:** {{baseUrl}}/api/petrinet/{identifier}/{version}
     */
    getOne(identifier: string, version: string, params?: Params): Observable<PetriNetReference>;
    /**
     * get One Net by ID
     *
     * **Request Type:** GET
     *
     * **Request URL:** {{baseUrl}}/api/petrinet/{id}
     */
    getOneById(netId: string, params?: Params): Observable<PetriNet>;
    /**
     * import PetriNet
     *
     * **Request Type:** POST
     *
     * **Request URL:** {{baseUrl}}/api/petrinet/import
     */
    importPetriNet(body: FormData, params?: Params): Observable<ProviderProgress | EventOutcomeMessageResource>;
    /**
     * search PetriNets
     *
     * **Request Type:** POST
     *
     * **Request URL:** {{baseUrl}}/api/petrinet/search
     */
    searchPetriNets(body: PetriNetRequestBody, params?: Params): Observable<Page<PetriNetReference>>;
    /**
     * search PetriNets
     *
     * **Request Type:** POST
     *
     * **Request URL:** {{baseUrl}}/api/petrinet/search
     */
    searchElasticPetriNets(body: PetriNetRequestBody, params?: Params): Observable<Page<PetriNetReference>>;
    /**
     * delete PetriNet
     *
     * **Request Type:** DELETE
     *
     * **Request URL:** {{baseUrl}}/api/petrinet/{id}
     *
     * @param netId stringId of the deleted Petri Net
     */
    deletePetriNet(netId: string): Observable<MessageResource>;
    static ɵfac: i0.ɵɵFactoryDeclaration<PetriNetResourceService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<PetriNetResourceService>;
}
