import * as React from "react"; export declare const TYPE_TEXT = "text"; export declare const TYPE_TEXT_AREA = "textarea"; export declare const TYPE_NUMBER = "number"; export declare const TYPE_EMAIL = "email"; export declare const TYPE_RADIO = "radio"; export declare const TYPE_PHONE_NUMBER = "phone_number"; export declare const TYPE_DATE = "date"; export declare const TYPE_TIME = "time"; export declare const TYPE_SELECT = "select"; export declare const TYPE_CALCULATOR = "calculate"; export declare const TYPE_NONE = "none"; export declare const TYPE_CHECK_BOX = "checkbox"; export declare const TYPE_CUSTOMS = "customs"; export declare const TYPE_FILE = "file"; export declare const TYPE_PASSWORD = "password"; export declare const TYPE_SUBMIT = "submit"; export declare const TYPE_OTP = "otp"; export declare const TYPE_BUTTON = "button"; export declare const TYPE_ARRAY = "array"; export declare const TYPE_OBJECT = "object"; export declare const TYPE_MODEL_ERROR_LIMIT = "limit"; export declare const TYPE_MODEL_ERROR_REQURIED = "required"; export declare const TYPE_MODEL_ERROR_NUMBER = "number"; export declare const TYPE_MODEL_ERROR_EMAIL = "email"; export declare const TYPE_MODEL_ERROR_MINIMUM = "minimum"; export declare const TYPE_MODEL_ERROR_NO_SPACE = "noSpace"; export declare const TYPE_MODEL_ERROR_NO_SPECIAL_CHARACTER = "noSpecialCharacter"; export declare const TYPE_MODE_NORMAL = "normal"; export declare const TYPE_ERROR_NORMAL = "normal"; export declare const TYPE_ERROR_ARRAY = "array"; export declare const TYPE_FUNCTION = "function"; export declare type FieldCommon = { label: string; name: string; required?: boolean; noSpace?: boolean; noSpecialCharacter?: boolean; disabled?: boolean; key?: string; emitter?: string | [string]; render?: (props: { value: any; loading: boolean; }) => React.ReactNode; renderError?: (props: { error: string; }) => React.ReactNode; renderFooter?: (props: any) => React.ReactNode; isEdit?: boolean; subLabel?: string; fields: FieldType[]; childKey?: string; limitArray?: number; addLabel?: string; removeLabel?: string; classNameCore?: string; classNameInput?: string; classNameLabel?: string; classNameWrapper?: string; classNameValue?: string; childType?: "array" | "object"; classNameSubLabel?: string; classNameError?: string; classNameAdd?: string; classNameRemove?: string; triggerDelete?: any; initalValue?: any; showButtonAdd?: boolean; showButtonRemove?: boolean; errorCustoms?: (props: { value: any; name: string; }) => string; recipient?: boolean; coverComponent?: (props: { children: React.ReactNode; childrenProps: any; }) => React.ReactNode; coverChildrenComponent?: (props: { children: React.ReactNode; childrenProps: any; }) => React.ReactNode; format?: (props: { value: any; }) => any; renderIndexZero?: (props: { add: any; isLast: boolean; isFirst: boolean; resetValueWhenEmitterChange: boolean; }) => React.ReactNode; }; export declare type FieldOption = { label: string; value: string; }[]; export declare type FieldText = FieldCommon & { type: "text"; placeholder?: string; unit?: string; limit?: number; classNameUnit?: string; minimum?: number; onKeyPress?: (props: { event: any; value: any; data: any; props: any; }) => void; }; export declare type FieldPassword = FieldCommon & { type: "password"; placeholder?: string; classNameIcon?: string; onKeyPress?: (props: { event: any; value: any; data: any; props: any; }) => void; }; export declare type FieldTextArea = FieldCommon & { type: "textarea"; limit?: number; placeholder?: string; minimum?: number; autoScale?: boolean; onKeyPress?: (props: { event: any; value: any; data: any; props: any; }) => void; }; export declare type FieldNumber = FieldCommon & { type: "number"; unit?: string; limit?: number; classNameUnit?: string; minimum?: number; onKeyPress?: (props: { event: any; value: any; data: any; props: any; }) => void; }; export declare type FieldEmail = FieldCommon & { type: "email"; placeholder?: string; onKeyPress?: (props: { event: any; value: any; data: any; props: any; }) => void; }; export declare type FieldRadio = FieldCommon & { type: "radio"; options: [string]; direction?: "horizontal" | "vertical"; other?: boolean; }; export declare type FieldDate = FieldCommon & { type: "date"; min?: string; max?: string; }; export declare type FieldTime = FieldCommon & { type: "time"; }; export declare type FieldCheckBox = FieldCommon & { type: "checkbox"; options: [string]; direction?: "horizontal" | "vertical"; classNameWrapper?: string; }; export declare type FieldDropDown = FieldCommon & { type: "select"; options: FieldOption; placeholder?: string; isMultiple?: boolean; classNameOption?: string; classNameOptions?: string; classNameValues?: string; classNameIcon?: string; dataType?: "original" | "default"; isSearchAble?: boolean; }; export declare type FieldOTP = FieldCommon & { type: "otp"; count?: number; trigger?: any; }; export declare type FieldCustoms = { type: "customs"; name: string; emitter?: string | [string]; recipient?: boolean; fieldCustoms: (props: { classNameCore: String; disabled: boolean; isEdit: boolean; received: any; name: String; reference: { current: ""; }; setValue: React.Dispatch>; value: any; }) => React.ReactNode; }; export declare type FieldCalcurate = { type: "calculate"; option: "sum" | "minus" | "multiply" | "divide"; label: string; name: string; key?: string; emitter?: string; render?: (props: { value: any; }) => React.ReactNode; renderError?: (props: { error: string; }) => React.ReactNode; classNameCore?: string; classNameInput?: string; classNameLabel?: string; classNameWrapper?: string; classNameValue?: string; classNameError?: string; isEdit?: boolean; subLabel?: string; classNameSubLabel?: string; calculate?: [string]; limit?: number; minimum?: number; }; export declare type FileUploadImage = FieldCommon & { type: "file"; getPathUrl: String; accept: String; labelUpload: String; isMultiple?: boolean; classNameValues?: string; }; export declare type FieldButton = { type: "button"; render: (props: { add: any; remove: any; edit: (data: any, index: number) => void; }) => React.ReactNode; }; export declare type FieldNone = { type: "none"; key?: string; label: string; name: string; render?: (props: { value: any; loading: boolean; }) => React.ReactNode; classNameCore?: string; classNameLabel?: string; classNameWrapper?: string; classNameValue?: string; classNameSubLabel?: string; subLabel?: string; }; export declare type FieldSubmit = { type: "submit"; labelSubmit: string; onSubmit?: any; renderAlertError?: (props: { message: string; }) => React.ReactNode; classNameSubmit: string; }; export declare type FieldPhoneNumber = FieldCommon & { type: "phone_number"; select: [string]; defualtValue: string; classNameInput?: string; classNameOptions?: string; placeholder?: string; renderImages?: [any]; }; export declare type FieldType = FieldNone | FieldText | FieldTextArea | FieldRadio | FieldNumber | FieldTime | FieldDropDown | FieldDate | FieldCalcurate | FieldEmail | FieldCheckBox | FieldCustoms | FileUploadImage | FieldPassword | FieldSubmit | FieldPhoneNumber | FieldOTP | FieldButton; export interface FieldProps { fields: Array; mode?: "normal" | "object"; classNameCancel?: string; classNameSubmit?: string; loading?: boolean; onSubmit?: any; onCancel?: any; labelCancel?: string; labelSubmit?: string; loadData?: {}; language?: "TH" | "EN"; classNameWrapper?: string; firstButton?: "cancel" | "submit"; renderAlertError?: (props: { message: string; name: string; error: any; }) => React.ReactNode; showError?: boolean; error: "normal" | "array"; resetAfterSubmit?: boolean; showSymbol?: boolean; showErrorAlert?: boolean; preview?: boolean; renderPreview?: (props: { data: any; }) => React.ReactNode; classNamePreview?: string; classNameSuperCore?: string; validateDataNoChange?: [string]; } export interface PageProps { api: any; path: string; title?: string; mode: "detail" | "main"; navigate?: any; params?: any; language?: "TH" | "EN"; classNameAdd?: string; labelAdd?: string; labelNoData?: string; classNameWrapper?: string; classNameTitle?: string; classNameError?: string; initialState?: any; debounceParams?: number; method?: "GET" | "POST"; renderLoading?: () => React.ReactNode; renderBody?: (props: { data: any; loading: boolean; refetch: () => void; error: any; state?: any; setState?: React.Dispatch>; }) => React.ReactNode; renderCard?: (props: { props: any; }) => React.ReactNode; renderHeader?: (props: { data: any; loading: boolean; refetch: () => void; error: any; state?: any; setState?: React.Dispatch>; }) => React.ReactNode; renderFooter?: (props: { data: any; loading: boolean; refetch: () => void; error: any; state?: any; setState?: React.Dispatch>; }) => React.ReactNode; } export interface PageStateProps { body: (props: { state: any; setState: any; }) => React.ReactNode; initalState?: any; name?: string; } export interface PageEffectProps { action: any; dependencies: any; } export interface InfinityScrollProps { api: any; path: string; limit: number; params: any; renderLoading: React.ReactNode; renderError: any; renderCard: (props: { data: any; index: Number; }) => React.ReactNode; initialState: any; classNameCard: string; debounceParams: number; method?: "GET" | "POST"; keyName: string; } export interface DataProperties { data: any; }