import { PetriNetReference } from '../../../resources/interface/petri-net-reference';
import { PetriNetResourceService } from '../../../resources/engine-endpoint/petri-net-resource.service';
import { LoggerService } from '../../../logger/services/logger.service';
import { Observable } from 'rxjs';
import NetRole from '../../../process/netRole';
export interface ExtendedProcessRole extends NetRole {
    selected: boolean;
    processIdentifier: string;
    toggle(): void;
}
export interface ProcessVersion extends PetriNetReference {
    roles: Array<ExtendedProcessRole>;
}
export interface ProcessListItem {
    identifier: string;
    title: string;
    initials: string;
    newestVersion: string;
    processes: Array<ProcessVersion>;
    loading: boolean;
    emptyRoles: boolean;
    someRolesSelected: boolean;
}
export declare class ProcessList {
    private _resources;
    private _log;
    private _loading$;
    private _processes;
    private readonly _rolesIndex;
    private _selectedRoles;
    constructor(_resources: PetriNetResourceService, _log: LoggerService);
    get loading(): boolean;
    get loading$(): Observable<boolean>;
    get processes(): Array<ProcessListItem>;
    get selectedRoles(): Array<string>;
    loadProcesses(): Observable<Array<ProcessListItem>>;
    prepareToTryAgainToLoadRoles(item: ProcessListItem): void;
    selectRoles(roleIds: Set<string>): void;
    updateSelectedRoles(role: ExtendedProcessRole): void;
    loadProcessItemRoles(item: ProcessListItem): void;
    private loadNetRoles;
    private updateSelectedRolesFlag;
}
