/// <reference types="react" />
import { RegistrationFilter } from "@appglue/common/dist/Common/IRegistrationData";
import { FlowStepData } from "@appglue/common/dist/Flow/Steps/FlowStepData";
import { DataDefinition } from "@appglue/common/dist/Common/Data/DataDefinition";
import { FlowEditContext } from "../FlowEditContext";
import { BaseFlowStepEditor } from "../Steps/BaseFlowStepEditor";
export declare class FlowStepEditorRegistrationData {
    category: string;
    type: string;
    name: string;
    icon: JSX.Element;
    include?: RegistrationFilter;
    private prototype;
    constructor(prototype: any, type: string, category: string, name: string, icon: JSX.Element, include?: RegistrationFilter);
    create(editContext: FlowEditContext, data?: FlowStepData): BaseFlowStepEditor;
}
export declare function RegisterFlowEditor(step: BaseFlowStepEditor, forStep: FlowStepData, category: string, name: string, icon: JSX.Element, include?: RegistrationFilter): void;
export declare class FlowStepEditorRegistrationClass {
    private registrations;
    addRegistration(data: FlowStepEditorRegistrationData): void;
    getByTypeName(type: string): FlowStepEditorRegistrationData;
    getAll(forData?: DataDefinition): FlowStepEditorRegistrationData[];
    getItemsByCategories(category?: string): {
        [key: string]: FlowStepEditorRegistrationData[];
    };
}
export declare const FlowStepEditorRegistration: FlowStepEditorRegistrationClass;
