import { VoidFunc, VoidFuncNoParam } from "../../../fd-toolbox/functions/internal-getter-setter-functions";
import { EditResourceConfig } from "../edit-resource/config/edit-resource-config";
import { WithId } from "../../../fd-toolbox-core/types/resource-with-id";
import { UiResourceMeta } from "../ui-resource-meta";
/**
 * Props for the {@link View} component.
 */
export interface ViewProps {
    /** The name of the resource to display */
    resourceName?: string;
    /** The id of the resource to display */
    resourceId?: string;
    /** Event handler called when deletion is completed */
    onDeleteComplete?: VoidFuncNoParam;
    /** Event handler called when cancel action is triggered */
    onCancelClick?: VoidFuncNoParam;
    /** Event handler called when save operation is completed. First param - boolean value that indicates if sheet should close. Second param is resource id */
    onSaveComplete?: VoidFunc<boolean, string>;
    /** Configuration object for customizing the view behavior */
    config?: EditResourceConfig;
    /** The name identifier for the view type */
    viewName?: string;
    /**
     * A promise that resolves to an array of resources to be displayed in the ResourceList's Table.
     * Can be added to increase the performance of the component.
     * This is useful when the resources are fetched from an API or database and you want to
     * avoid fetching them again when the view is rendered.
     */
    resources?: WithId[] | Promise<WithId[]>;
    /**
     * Metadata about the item being displayed can be added to increase the performance of the component
     * and metadata about related resources that can be displayed in the view.
     * Can be added to increase the performance of the component.
     */
    uiResourceMetas?: UiResourceMeta[] | Promise<UiResourceMeta[]>;
    /** Event handler called when refreshing data display (e.g., updating tables/lists after creating or updating a resource) */
    onRefreshItem?: VoidFuncNoParam;
}
/**
 * A configurable component that can take many forms.
 *
 * For example, it can take form of {@link ResourceList} or full {@link EditResource}.
 */
export declare function View({ resourceName, resourceId, onDeleteComplete, onCancelClick, onSaveComplete, config, viewName, resources, uiResourceMetas: uiResourceMetasProp, onRefreshItem, }: ViewProps): import("react").JSX.Element;
