import { ElementMeta, PropertyMeta } from "../model/CamelMetadata";
import { ExpressionDefinition, NamedBeanDefinition, RestDefinition } from "../model/CamelDefinition";
import { CamelElement, CamelElementMeta, Dependency, Integration } from "../model/IntegrationDefinition";
import { Kamelet } from "../model/KameletDefinition";
import { Property } from "../model/KameletModels";
export declare class ChildElement {
    name: string;
    className: string;
    multiple: boolean;
    constructor(name: string, className: string, multiple: boolean);
}
export declare class CamelDefinitionApiExt {
    static addStepToIntegration: (integration: Integration, step: CamelElement, parentId: string, position?: number) => Integration;
    static addStepToStep: (step: CamelElement, stepAdded: CamelElement, parentId: string, position?: number) => CamelElement;
    static addStepToSteps: (steps: CamelElement[], step: CamelElement, parentId: string, position?: number) => CamelElement[];
    static findElementInIntegration: (integration: Integration, uuid: string) => CamelElement | undefined;
    static findElementMetaInIntegration: (integration: Integration, uuid: string) => CamelElementMeta;
    static findElementPathUuids: (integration: Integration, uuid: string) => string[];
    static findElementInElements: (steps: CamelElement[] | undefined, uuid: string, result?: CamelElementMeta, parentUuid?: string) => CamelElementMeta;
    static moveRouteElement: (integration: Integration, source: string, target: string, asChild: boolean) => Integration;
    static deleteStepFromIntegration: (integration: Integration, uuidToDelete: string) => Integration;
    static deleteStepFromStep: (step: CamelElement, uuidToDelete: string) => CamelElement;
    static deleteStepFromSteps: (steps: CamelElement[] | undefined, uuidToDelete: string) => CamelElement[];
    static addBeanToIntegration: (integration: Integration, bean: NamedBeanDefinition) => Integration;
    static deleteBeanFromIntegration: (integration: Integration, bean?: NamedBeanDefinition) => Integration;
    static addDependencyToIntegration: (integration: Integration, dependency: Dependency) => Integration;
    static deleteDependencyFromIntegration: (integration: Integration, dependency?: Dependency) => Integration;
    static addRestToIntegration: (integration: Integration, rest: RestDefinition) => Integration;
    static addRestMethodToIntegration: (integration: Integration, method: CamelElement, restUuid: string) => Integration;
    static addRestMethodToRestMethods: (methods: CamelElement[] | undefined, method: CamelElement) => CamelElement[];
    static findRestMethodParent: (integration: Integration, method: CamelElement) => string | undefined;
    static deleteRestConfigurationFromIntegration: (integration: Integration) => Integration;
    static deleteRestFromIntegration: (integration: Integration, restUuid?: string) => Integration;
    static deleteRestMethodFromIntegration: (integration: Integration, methodUuid?: string) => Integration;
    static getExpressionLanguageName: (expression: ExpressionDefinition | undefined) => string | undefined;
    static getExpressionLanguageClassName: (expression: ExpressionDefinition | undefined) => string | undefined;
    static getDataFormat: (element: CamelElement | undefined) => ElementMeta | undefined;
    static getExpressionValue: (expression: ExpressionDefinition | undefined) => CamelElement | undefined;
    static updateIntegrationRestElement: (integration: Integration, e: CamelElement) => Integration;
    static updateIntegrationRouteElement: (integration: Integration, e: CamelElement) => Integration;
    static updateElement: (element: CamelElement, e: CamelElement) => CamelElement;
    static updateElements: (elements: CamelElement[], e: CamelElement) => CamelElement[];
    static getElementProperties: (className: string | undefined) => PropertyMeta[];
    static getElementPropertiesByName: (name: string) => PropertyMeta[];
    static getParametersValue: (element: CamelElement | undefined, propertyName: string, pathParameter?: boolean) => any;
    static getElementChildrenDefinition: (dslName: string) => ChildElement[];
    static getElementChildren: (element: CamelElement, child: ChildElement) => CamelElement[];
    static updateKameletIcon: (kamelet: Kamelet, icon: string) => Kamelet;
    static addStepToKamelet: (kamelet: Kamelet, step: CamelElement, parentId: string, position?: number) => Kamelet;
    static deleteStepFromKamelet: (kamelet: Kamelet, uuidToDelete: string) => Kamelet;
    static updateKameletElement: (kamelet: Kamelet, e: CamelElement) => Kamelet;
    static addBeanToKamelet: (kamelet: Kamelet, bean: NamedBeanDefinition) => Kamelet;
    static deleteBeanFromKamelet: (kamelet: Kamelet, bean?: NamedBeanDefinition) => Kamelet;
    static addDependencyToKamelet: (kamelet: Kamelet, dependency: Dependency) => Kamelet;
    static deleteDependencyFromKamelet: (kamelet: Kamelet, dependency?: Dependency) => Kamelet;
    static addPropertyToKamelet: (kamelet: Kamelet, property: Property) => Kamelet;
    static deletePropertyFromKamelet: (kamelet: Kamelet, propertyName: string) => Kamelet;
}
