import { WithId } from "../../../fd-toolbox-core/types/resource-with-id";
import { SetStateFunc, VoidFunc, VoidFuncNoParam } from "../../../fd-toolbox/functions/internal-getter-setter-functions";
import { ResourceMeta } from "../core/resource-meta";
import { UiResourceMeta } from "../ui-resource-meta";
import { Validators } from "./services/form-validations";
import { UiPropertyMeta } from "../core/ui-property-meta";
import { WithIndexer } from "../../../fd-toolbox-core/types/with-indexer";
import { FieldValues, UseFormGetValues, UseFormReturn } from "react-hook-form";
import { EditResourceConfig } from "./config/edit-resource-config";
import { EditResourceCustomFieldConfig } from "./config/edit-resource-config-custom-field";
import { Comment } from "../core/resources/comment.resource";
import { MultiListItem, MultiListItemType, MultiListSection } from "../components/multi-list/multi-list-types";
import { GlobalConfig } from "../providers/global-provider/default-config";
import { BrowserType } from "../browsers/browser-type";
export declare function onConfigChange(setIsNew: VoidFunc<boolean>, config: EditResourceConfig, resource: WithId, setResource: VoidFunc<WithId>, setLoadComplete: VoidFunc<boolean>, leftUiPropertyMetas: WithIndexer<UiPropertyMeta>, setLeftUiPropertyMetas: VoidFunc<WithIndexer<UiPropertyMeta>>, setFormFieldOptions: VoidFunc<WithIndexer<Validators>>, setFormValue: VoidFunc<string, unknown>, getFormValue: UseFormGetValues<FieldValues>, instanceNumber: {
    value: number;
}, uiResourceMeta: UiResourceMeta, setResourceRelations: VoidFunc<WithIndexer<string[]>>, setLeftCustomActions: VoidFunc<EditResourceCustomFieldConfig[]>, isNew?: boolean, onLoadComplete?: VoidFuncNoParam, resourceFromProp?: WithId): Promise<() => void>;
export declare function initializeMultiListResources(resourceName: string, config: EditResourceConfig, setMultiListItems: VoidFunc<MultiListItem[]>, setEditConfig: VoidFunc<EditResourceConfig>, setResource: VoidFunc<WithId>, setUiResourceMeta: VoidFunc<UiResourceMeta>, setIsLoadComplete: VoidFunc<boolean>, isNew: boolean, setCommentList: VoidFunc<Comment[]>, globalConfig: GlobalConfig, setGlobalConfig: SetStateFunc<GlobalConfig>, resourceId: string): Promise<void>;
export declare function onCancelImageEdit(form: UseFormReturn, resource: WithId, onCancelClick?: VoidFuncNoParam): Promise<void>;
export declare function onSaveResourceOnChange(value: string, name: string, handleValidation: (form: FieldValues) => boolean, form: UseFormReturn, resource: WithId, isNew: boolean, resourceMeta: ResourceMeta, setResource: VoidFunc<WithId>, resourceRelation: WithIndexer<string[]>, setResourceRelation: VoidFunc<WithIndexer<string[]>>, setActiveSaveOperations: (value: number | ((value: number) => number)) => void, config?: EditResourceConfig, onRefreshResource?: VoidFuncNoParam, notifySaveComplete?: VoidFuncNoParam, onSavingStarting?: VoidFuncNoParam, onSavingEnding?: VoidFuncNoParam, onPropertyUpdateComplete?: VoidFuncNoParam): Promise<void>;
export declare function shouldShowSaveCancelButtons(isNew: boolean, uiResourceMeta: UiResourceMeta): boolean;
export declare function determineColumnsCount(uiResourceMeta: UiResourceMeta, columns?: number): number;
export declare function getInitialEditResource(resourceFromProp?: WithId, resourceId?: string): WithId;
export declare function getSyncedEditResourceConfig(previousConfig: EditResourceConfig, sourceConfig?: EditResourceConfig): EditResourceConfig;
export declare function getEditNavigationItems(multiListItems: MultiListItem[], multiListSections?: MultiListSection[]): {
    displayName: string;
    targetHtmlElementId: string;
}[];
export declare function processTabAdditionalResources(config: EditResourceConfig, multiListItemType: MultiListItemType): Promise<MultiListItem[]>;
/** @internal */
export declare function getEditResourceId(index?: number): string;
/** @internal */
export declare function getEditResourcePropertyId(propertyName: string, parentContextName: string, elementIndex?: number): string;
/** @internal */
export declare function getEditResourceExpandRelationButtonId(resourceName: string): string;
/** @internal */
export declare function getEditResourceBackButtonId(resourceName: string): string;
/** @internal */
export declare function getEditResourceSaveButtonId(resourceName: string): string;
/** @internal */
export declare function getEditResourceCancelButtonId(resourceName: string): string;
/** @internal */
export declare function getEditResourceMarkdownPreviewButtonId(propertyName: string, parentContextName: string, elementIndex?: number): string;
/** @internal */
export declare function getEditResourceBrowserInputId(propertyName: string, browserType: BrowserType, parentContextName: string, elementIndex?: number): string;
