import { CombinatorKeyword, ControlElement, JsonFormsState, JsonFormsSubStates, JsonSchema, OwnPropsOfControl, OwnPropsOfRenderer, StatePropsOfCombinator } from "@jsonforms/core";
import "@openremote/or-components/or-ace-editor";
import { TemplateResult } from "lit";
export declare function getTemplateFromProps<T extends OwnPropsOfRenderer>(state: JsonFormsSubStates | undefined, props: T | undefined): TemplateResult | undefined;
export interface CombinatorInfo {
    title: string;
    description: string;
    constProperty?: string;
    constValue?: any;
    defaultValueCreator: () => any;
}
/**
 * For a given anyOf schema array this will try and extract a common const property which can be used as a discriminator
 * when creating instances
 */
export declare function getCombinatorInfos(schemas: JsonSchema[], rootSchema: JsonSchema): CombinatorInfo[];
export declare function getSchemaConst(schema: JsonSchema): any;
export declare function getSchemaPicker(rootSchema: JsonSchema, resolvedSchemas: JsonSchema[], label: string, selectedCallback: (selectedSchema: CombinatorInfo) => void): TemplateResult;
export declare function findSchemaTitleAndDescription(schema: JsonSchema, rootSchema: JsonSchema): [string | undefined, string | undefined];
/**
 * TODO: when updating to jsonforms/core 4.0 consider using `getCombinatorIndexOfFittingSchema` from jsonforms/core instead
 */
export declare function getCombinatorIndexOfFittingSchema(data: any, keyword: CombinatorKeyword, schema: JsonSchema & {
    discriminator?: {
        propertyName?: string;
    };
}, rootSchema: JsonSchema): number;
/**
 * Copied from eclipse source code
 * TODO: when updating to jsonforms/core 4.0 we could consider `mapStateToCombinatorRendererProps` from jsonform/core instead
 */
export declare function mapStateToCombinatorRendererProps(state: JsonFormsState, ownProps: OwnPropsOfControl, keyword: CombinatorKeyword): Omit<StatePropsOfCombinator, 'label' | 'errors' | 'enabled'>;
export declare function getLabel(schema: JsonSchema, rootSchema: JsonSchema, uiElementLabel?: string, uiElementScope?: string): string | undefined;
export declare function resolveSubSchemasRecursive(schema: JsonSchema, rootSchema: JsonSchema, keyword?: CombinatorKeyword): JsonSchema;
export declare const controlWithoutLabel: (scope: string) => ControlElement;
export declare const showJsonEditor: (title: string, value: any, updateCallback: (newValue: string) => void) => void;
//# sourceMappingURL=util.d.ts.map