import type { Key } from 'react'; import type { BtnsAlignType, BtnsType, SuperButtonProps } from './../../btns'; import type { ApiType, Col, JumpTarget, NoopType } from './../../shared'; export interface ServiceMessageType { initSuccess?: string; initError?: string; saveSuccess?: string; saveError?: string; } export interface SuperServiceProps { initApi?: ApiType; api?: ApiType; message?: ServiceMessageType; } export interface FormCommunicationProps { updateName?: string; refreshName?: string; } export interface PersistDataProps { persistData?: boolean; clearPersistDataAfterSubmit?: boolean; } export interface ActionProps { resetAfterSubmit?: boolean; redirect?: JumpTarget; } export interface LabelAndResponseProps { labelCol?: Col; wrapperCol?: Col; isResponsive?: boolean; } export interface FormItemNeedsProps { disabled?: boolean; readonly?: boolean; hideLabel?: boolean; autoPlaceholder?: boolean; } export declare type FormBtnType = string | boolean | SuperButtonProps; export interface BtnsProps { submitBtn?: FormBtnType; resetBtn?: FormBtnType; cancelBtn?: FormBtnType; onCancel?: NoopType; onReset?: NoopType; extraBtns?: BtnsType; btnsAlign?: BtnsAlignType; render?: (data: Record, doms?: JSX.Element) => React.ReactNode[] | React.ReactNode | false; } export interface FormEnhancedProps { throttleTimeout?: number; debug?: boolean; btns?: BtnsProps; align?: 'left' | 'right' | 'center'; preserveRemoteData?: boolean; itemCount?: number; }