import { PropertyMeta } from "../../core/property-meta";
import { WithId } from "../../../../fd-toolbox-core/types/resource-with-id";
import { UiPropertyMeta } from "../../core/ui-property-meta";
import { PropertyRelationSyncInfo } from "../../crud/property-relation-sync-info";
import { WithIndexer } from "../../../../fd-toolbox-core/types/with-indexer";
import { VoidFunc, VoidFuncNoParam } from "../../../../fd-toolbox/functions/internal-getter-setter-functions";
import { ResourceMeta } from "../../core/resource-meta";
import { UseFormReturn, FieldValues } from "react-hook-form";
import { UiResourceMeta } from "../../ui-resource-meta";
import { EditResourceConfig } from "../config/edit-resource-config";
import { ODataConfig } from "../../../../fd-toolbox/odata/odataconfig";
export declare function handleValidationError(error: unknown, editResourceForm: UseFormReturn): void;
export declare function prepareEditedResource(propertyMetas: PropertyMeta[], editedResource: WithId, editResourceForm: WithIndexer<string>): void;
export declare function deleteResource(isYes: boolean, resourceName: string, resource: WithId, onDeleteComplete?: VoidFuncNoParam): Promise<void>;
export declare function prepareMetaRelationsToUpdate(relatedResources: Map<PropertyMeta, WithId[]>): PropertyRelationSyncInfo[];
export declare function ensureDefaultValueForPropertyType(propertyMeta: PropertyMeta, resource: WithId, isNew?: boolean): unknown;
export declare function compareFormValue(leftFormValues: FieldValues | WithId, rightFormValues: FieldValues | WithId, propertyName: string, resourceMeta: ResourceMeta): boolean;
export declare function getStringifiedResourceRelations(resourceId: string, resourceMeta: ResourceMeta): Promise<WithIndexer<string[]>>;
export declare function checkPermission(isNew: boolean, uiResourceMeta: UiResourceMeta, resource: WithId): void;
export declare function fetchAndSetResource(setResource: VoidFunc<WithId>, resourceMeta: ResourceMeta, resourceId: string, isNew: boolean, setResourceRelation: VoidFunc<WithIndexer<string[]>>, config?: EditResourceConfig): Promise<any>;
export declare function getODataConfig(config?: EditResourceConfig): ODataConfig;
export declare function createFormLikeObject(resource: WithId, relations: WithIndexer<string[]>): {
    [x: string]: any;
    id: string;
};
export declare function getAllPropertyMetas(leftMetas: WithIndexer<UiPropertyMeta>, uiResourceMeta: UiResourceMeta): WithIndexer<UiPropertyMeta>[];
export declare function shouldEditResourceShowDeleteButton(isNew: boolean, resourceMeta?: ResourceMeta): boolean;
export declare function shouldEditResourceShowSaveCancelButtons(resourceMeta?: ResourceMeta): boolean;
export declare function shouldEditResourceShowCreateButton(resourceMeta?: ResourceMeta): boolean;
export declare function shouldShowTabs(uiResourceMeta: UiResourceMeta): boolean;
