import React from 'react'; import { ButtonProps } from '@alicloudfe/components/types/button'; import { ArrayField } from '@formily/core'; import { Schema, JSXComponent } from '@formily/react'; import { IconProps } from '../__builtins__'; export interface IArrayBaseAdditionProps extends ButtonProps { title?: string; method?: 'push' | 'unshift'; defaultValue?: any; } export interface IArrayBaseContext { props: IArrayBaseProps; field: ArrayField; schema: Schema; } export interface IArrayBaseItemProps { index: number; record: ((index: number) => Record) | Record; } export declare type ArrayBaseMixins = { Addition?: React.FC>; Remove?: React.FC>; Copy?: React.FC>; MoveUp?: React.FC>; MoveDown?: React.FC>; SortHandle?: React.FC>; Index?: React.FC; useArray?: () => IArrayBaseContext; useIndex?: (index?: number) => number; useRecord?: (record?: number) => any; }; export interface IArrayBaseProps { disabled?: boolean; onCopy?: (index: number) => void; onAdd?: (index: number) => void; onRemove?: (index: number) => void; onMoveDown?: (index: number) => void; onMoveUp?: (index: number) => void; } declare type ComposedArrayBase = React.FC> & ArrayBaseMixins & { Item?: React.FC>; mixin?: (target: T) => T & ArrayBaseMixins; }; export declare const ArrayBase: ComposedArrayBase; export default ArrayBase;