import React, { HTMLProps } from 'react';
import { ButtonProps } from 'antd-mobile/es/components/button';
import { ArrayField } from '@formily/core';
import { Schema, JSXComponent } from '@formily/react';
export * from './utils';
export declare type IconProps = HTMLProps & React.SVGProps;
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: any;
}
export declare type ArrayBaseMixins = {
Addition?: React.FC;
Remove?: React.FC;
MoveUp?: React.FC;
MoveDown?: React.FC;
SortHandle?: React.FC;
Copy?: React.FC;
Index?: React.FC;
Empty?: React.FC;
useArray?: () => IArrayBaseContext;
useIndex?: () => number;
useRecord?: () => any;
};
export interface IArrayBaseProps {
disabled?: boolean;
onAdd?: (index: number) => void;
onRemove?: (index: number) => void;
onCopy?: (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;