import React, { ReactNode } from 'react'; export interface IResourceContext { resources: IResourceItem[]; } export interface OptionsProps { label?: string; route?: string; } export interface ResourceProps extends IResourceComponents { name: string; canDelete?: boolean; icon?: ReactNode; options?: OptionsProps; } export interface IResourceComponentsProps { canCreate?: boolean; canEdit?: boolean; canDelete?: boolean; canShow?: boolean; name?: string; initialData?: TCrudData; } export interface IResourceComponents { list?: React.FunctionComponent; create?: React.FunctionComponent; edit?: React.FunctionComponent; show?: React.FunctionComponent; } export interface IResourceItem extends IResourceComponents { name: string; label?: string; route?: string; icon?: ReactNode; canCreate?: boolean; canEdit?: boolean; canShow?: boolean; canDelete?: boolean; } export declare type IMenuItem = IResourceItem & { key: string; route: string; };