import type { IField, IRegisteredEntity } from '..'; import EntityBaseStore from './base'; export declare type DetailedItem = Record; export interface IState { loading: boolean; dirty: boolean; originalItem: DetailedItem; formItem: DetailedItem; relatedItems: Record>>; formErrors: Record; } export interface IGetItemParams { include?: string[]; query?: Record; } export default class EntityItemStore extends EntityBaseStore { protected entity: IRegisteredEntity | null; private itemIdInternal; protected getInitialState(): IState; protected get keyedFormFields(): Required[]; protected createItem(values?: Record): DetailedItem; protected inlineRelatedItems(item: Record, fields?: string[]): void; reloadOriginalItem({ include, query }?: IGetItemParams): Promise; loadEntityItem(entity: IRegisteredEntity | null, id?: string, params?: IGetItemParams): Promise; save(): Promise; destroy(): Promise; updateFormFieldValue(key: string, value: unknown, immediate?: boolean): Promise; setRelatedItem(key: string, id: string, item: Record): void; get loading(): IState['loading']; get formItem(): IState['formItem']; get originalItem(): IState['originalItem']; get relatedItems(): IState['relatedItems']; get formErrors(): IState['formErrors']; get itemId(): string; get hasErrors(): boolean; get isDirty(): boolean; }