import { WorkflowObjectType, Position } from '../models/types';
import { Tag } from '../../../models/Tag';
import * as i0 from "@angular/core";
export interface PreconditionData {
    type: 'form' | 'subflow' | 'swimlane' | 'decision';
    id?: string;
    name?: string;
    tags?: Tag[];
    condition?: string;
}
export interface PendingNode {
    type: WorkflowObjectType;
    position: Position;
}
export declare class NodePreconditionService {
    private persistence;
    private preconditionRequired;
    private pendingNodeSignal;
    readonly pendingNode: import("@angular/core").Signal<PendingNode | null>;
    private formOptions;
    private workflowOptions;
    private tagOptions;
    readonly forms: import("@angular/core").Signal<PreconditionData[]>;
    readonly workflows: import("@angular/core").Signal<PreconditionData[]>;
    readonly tags: import("@angular/core").Signal<Tag[]>;
    initializeData(): Promise<void>;
    requiresPrecondition(type: WorkflowObjectType): boolean;
    setPendingNode(type: WorkflowObjectType, position: Position): void;
    clearPendingNode(): void;
    getItems(type: WorkflowObjectType): Promise<PreconditionData[]>;
    private mapForms;
    private mapWorkflows;
    private mapTags;
    private getDecisionConditions;
    static ɵfac: i0.ɵɵFactoryDeclaration<NodePreconditionService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<NodePreconditionService>;
}
