import type { AbstractModel, DetachedModelConstructor, Value } from '@vaadin/hilla-lit-form';
import { type JSX } from 'react';
import { type AutoFormProps } from './autoform.js';
import { type AutoGridProps } from './autogrid.js';
import type { CrudService } from './crud.js';
import { type ComponentStyleProps } from './util.js';
export type AutoCrudFormHeaderRenderer<TItem> = (editedItem: TItem | null, disabled: boolean) => JSX.Element | null | undefined;
export type AutoCrudFormProps<TModel extends AbstractModel> = Omit<Partial<AutoFormProps<TModel>>, 'disabled' | 'item' | 'model' | 'onDeleteSuccess' | 'onSubmitSuccess' | 'service'> & Readonly<{
    headerRenderer?: AutoCrudFormHeaderRenderer<Value<TModel>>;
}>;
export type AutoCrudGridProps<TItem> = Omit<Partial<AutoGridProps<TItem>>, 'model' | 'onActiveItemChanged' | 'selectedItems' | 'service'>;
export type AutoCrudProps<TModel extends AbstractModel = AbstractModel> = ComponentStyleProps & Readonly<{
    service: CrudService<Value<TModel>>;
    model: DetachedModelConstructor<TModel>;
    itemIdProperty?: string;
    noNewButton?: boolean;
    formProps?: AutoCrudFormProps<TModel>;
    gridProps?: AutoCrudGridProps<Value<TModel>>;
}>;
export declare function AutoCrud<TModel extends AbstractModel>({ service, model, itemIdProperty, noNewButton, formProps, gridProps, style, id, className, }: AutoCrudProps<TModel>): JSX.Element;
