import React from 'react';
import PrismaCmsComponent from '@prisma-cms/component';
import { EditableObjectEditorProps, EditableObjectProps, EditableObjectState, EditableObjectSaveResult } from './interfaces';
export * from './interfaces';
export declare class EditableObject
extends PrismaCmsComponent
{
static defaultProps: {
errorDelay: number;
SaveIcon: React.ComponentType<{}>;
ResetIcon: React.ComponentType;
EditIcon: React.ComponentType;
cacheKeyPrefix: string;
};
constructor(props: P);
UNSAFE_componentWillMount(): void;
getStorage: () => any;
initCache(): void;
getCacheKey(): string | null | undefined;
setCache(data: Record | null): boolean;
getCache(): Record | null | undefined;
clearCache(): void;
onSave: (result: EditableObjectSaveResult) => (() => void);
save(): Promise;
saveObject(data: P['_dirty']): Promise;
mutate(props: Record): Promise;
resetStore: () => Promise;
getMutation(data: P['_dirty']): {
variables: {
where?: {
id: string;
} | undefined;
data: P["_dirty"];
};
};
getMutationVariables(data: P['_dirty']): {
where?: {
id: string;
};
data: P['_dirty'];
};
startEdit(): void;
resetEdit: () => void;
inEditMode(): boolean;
isDirty(): boolean;
prepareDirty(data: P['_dirty']): P["_dirty"] | undefined;
prepareNewState(state: Pick | S | null): Pick | S | null;
getEditor(props: EditableObjectEditorProps): React.ReactNode;
getTextField(props?: EditableObjectEditorProps): React.ReactNode;
getObjectWithMutations(): P['object'] | undefined;
getButtons(): Array | React.ReactNode;
renderResetButton(): React.ReactNode;
renderSaveButton(): React.ReactNode;
renderEditButton(): React.ReactNode;
getTitle(): any;
renderHeader(): React.ReactNode;
renderEmpty(): React.ReactNode;
renderDefaultView(): React.ReactNode;
renderEditableView(): React.ReactNode;
closeError(error: Record): void;
canEdit(): boolean;
render(): React.ReactNode;
}
/**
* For backward compatibility
*/
export declare const EditableView: typeof EditableObject;
export default EditableObject;