import type { EntityAccessor, EntityListAccessor } from '@contember/binding';
import { ReactNode } from 'react';
import type { MessageFormatter } from '../../../../i18n';
import { AddEntityButtonProps, EmptyMessageOuterProps } from '../helpers';
import type { RepeaterDictionary } from './repeaterDictionary';
export type RepeaterFieldContainerPublicProps = EmptyMessageOuterProps & AddEntityButtonProps & {
    enableAddingNew?: boolean;
};
export type RepeaterCreateNewEntity = (initialize?: EntityAccessor.BatchUpdatesHandler, index?: number) => void;
export interface RepeaterFieldContainerPrivateProps {
    accessor: EntityListAccessor;
    entities: EntityAccessor[];
    formatMessage: MessageFormatter<RepeaterDictionary>;
    isEmpty: boolean;
    /**
     * @deprecated Use label instead
     */
    boxLabel?: ReactNode;
    label: ReactNode;
    createNewEntity: RepeaterCreateNewEntity;
    children: ReactNode;
}
export type RepeaterFieldContainerProps = RepeaterFieldContainerPublicProps & RepeaterFieldContainerPrivateProps;
export declare const RepeaterFieldContainer: React.MemoExoticComponent<({ accessor, addButtonText, children, createNewEntity, addButtonComponent: AddButton, addButtonComponentExtraProps, addButtonProps, emptyMessage, emptyMessageComponent, enableAddingNew, formatMessage, isEmpty, label, }: RepeaterFieldContainerProps) => JSX.Element>;
//# sourceMappingURL=RepeaterFieldContainer.d.ts.map