///
import { DefinitionItem } from "@nexys/core-list/dist/types";
import * as T from "../detail/type";
import { FormDef, FormProps } from "../form/type";
import { ViewField } from "../view/type";
export declare type Uuid = string;
export declare type CrudInsert = (a: Omit) => Promise<{
id: Id;
}>;
export interface CrudRequest extends T.CrudRequestDetail {
list: () => Promise;
insert?: CrudInsert;
}
export interface ExtraUnit {
Component: ({ data }: {
data: A;
}) => JSX.Element;
paper?: boolean;
tab?: string;
title?: string;
colSpan?: number;
}
export interface CrudOptions {
showEditToggle: boolean;
detailColWidth: number;
editTitle?: string;
}
export declare type DetailGenericType = (Form: (a: FormProps) => JSX.Element, viewFields: ViewField[], { update, detail, deleteById, getOptions }: T.CrudRequestDetail, redirectUrl: string, showToggle: boolean, detailColWidth: number, extras?: ExtraUnit[], editTitle?: string) => (p: Omit, "Detail">) => JSX.Element;
export declare type CrudSimpleDef = FormDef & Pick, "render" | "filter" | "sort">;