///
import * as React from 'react';
import React__default, { ReactNode } from 'react';
interface IUser {
userID: string;
name: string;
email: string;
}
interface IBaseEntity {
id?: string;
created?: string;
edited?: string;
createdBy?: IUser;
editedBy?: IUser;
isDirty?: boolean;
properties?: IProperty[];
}
interface IProperty {
key: string;
value: string;
}
interface ITulevaMetaDataProps {
item: IBaseEntity;
labelCreated?: string;
labelModified?: string;
labelCreatedby?: string;
labelModifiedby?: string;
}
declare const TulevaMetaData: React__default.FC;
interface IHeaderColumnProps {
sortField?: string;
sortFieldMember?: string;
sortState?: string;
sortDescending?: boolean;
className?: string;
onClick?: (sortField: string, sortDescending: boolean, sortFieldMember?: string) => void;
children?: ReactNode;
}
declare const HeaderColumn: React__default.FC;
type PartProps = {
children: React__default.ReactNode;
};
interface ITulevaEditorProps {
item: IBaseEntity;
onSave: (item: IBaseEntity) => void;
onClick?: (item: IBaseEntity) => void;
onDelete: (id: string | undefined) => void;
onCopyItem?: (id: string | undefined) => void;
editMode: boolean;
hideEditButton?: boolean;
hideDeleteButton?: boolean;
hideCopyButton?: boolean;
hideExitButton?: boolean;
hideSaveButton?: boolean;
hideMetaData?: boolean;
onExit: (item: IBaseEntity) => void;
editor?: React__default.FC;
onRenderEdit: (item: IBaseEntity) => React__default.ReactNode;
onRenderView?: (item: IBaseEntity) => React__default.ReactNode;
deleteRights?: boolean;
editRights?: boolean;
showAsModal?: boolean;
stayInEditMode?: boolean;
confirmOnSave?: boolean;
confirmOnSaveMessage?: string;
wrapButtons: boolean;
onRenderEditorFooter?: (item: IBaseEntity, closeEditor: (e: any) => void) => React__default.ReactNode;
additionalEditButtons?: (item: IBaseEntity) => JSX.Element;
additionalViewButtons?: (item: IBaseEntity) => JSX.Element;
editorTitle?: string;
onRenderEditorCaption?: (item: IBaseEntity) => React__default.ReactNode;
labelSave?: string;
labelCancel?: string;
labelConfirmDelete?: string;
labelYes?: string;
labelNo?: string;
labelDeleteEntry?: string;
labelCopy?: string;
labelEdit?: string;
customEditButtonContent?: JSX.Element;
labelCreated?: string;
labelModified?: string;
labelCreatedby?: string;
labelModifiedby?: string;
}
declare const TulevaEditor: React__default.FC;
interface ITulevaPageProps {
caption?: string;
subLine?: string;
summary?: string;
helpTopic?: string;
deleteRights?: boolean;
editRights?: boolean;
createRights?: boolean;
listRights?: boolean;
hideEditButton?: boolean;
hideDeleteButton?: boolean;
hideExitButton?: boolean;
hideSaveButton?: boolean;
hideCopyButton?: boolean;
hideMetaData?: boolean;
loading: boolean;
onGetEditMode?: (item: IBaseEntity) => boolean;
onRenderEdit: (item: IBaseEntity) => JSX.Element;
onRenderView: (item: IBaseEntity) => JSX.Element;
onRenderListHeader: () => JSX.Element;
onRenderFilter: () => JSX.Element;
onRenderHeaderButtons?: () => JSX.Element;
dataSource?: IBaseEntity[];
onClick?: (item: IBaseEntity | any) => void;
onSave: (item: IBaseEntity | any, id: string) => void;
onDelete: (id: string | undefined) => void;
onCopyItem?: (id: string | undefined) => void;
onAddNew?: () => void;
showAsModal?: boolean;
stayInEditMode?: boolean;
confirmOnSave?: boolean;
confirmOnSaveMessage?: string;
onExit: (item: IBaseEntity) => void;
additionalViewButtons?: (item: IBaseEntity) => JSX.Element;
additionalEditButtons?: (item: IBaseEntity) => JSX.Element;
onRenderEditorFooter?: (item: IBaseEntity, closeEditor: (e: any) => void) => React__default.ReactNode;
labelNew?: string;
editorTitle?: string;
onRenderEditorCaption?: (item: IBaseEntity) => React__default.ReactNode;
wrappedButtons?: boolean;
labelYes?: string;
labelNo?: string;
labelSave?: string;
labelCancel?: string;
labelConfirmDelete?: string;
labelDeleteEntry?: string;
labelCopy?: string;
labelEdit?: string;
labelMetadataCreated?: string;
labelMetadataModified?: string;
labelMetadataCreatedby?: string;
labelMetadataModifiedby?: string;
}
declare const TulevaPage: React__default.FC;
interface IPageHeaderProps {
caption: string;
subLine?: string;
summary?: string;
children?: ReactNode;
className?: string;
helpTopic?: string;
buttonsClassName?: string;
}
declare const PageHeader: React__default.FC;
type sharedContextState = {
isValid: boolean;
item: IBaseEntity;
};
declare const EditorContextProvider: (props: {
children: React.ReactNode;
}) => React.FunctionComponentElement> | undefined>>;
declare const useEditorContext: () => sharedContextState;
declare const useSetEditorContext: (() => (value: React.SetStateAction) => void) | (() => React.Dispatch>);
export { EditorContextProvider, HeaderColumn, IBaseEntity, IUser, PageHeader, TulevaEditor, TulevaMetaData, TulevaPage, sharedContextState, useEditorContext, useSetEditorContext };