import React from "react";
export type ArrayEntryParams = {
    index: number;
    internalId: number;
    isDragging: boolean;
    storedProps?: object;
    storeProps: (props: object) => void;
};
export type ArrayEntryBuilder = (params: ArrayEntryParams) => React.ReactNode;
export interface ArrayContainerProps<T> {
    droppableId: string;
    value: T[];
    addLabel: string;
    buildEntry: ArrayEntryBuilder;
    disabled?: boolean;
    size?: "small" | "medium";
    onInternalIdAdded?: (id: number) => void;
    includeAddButton?: boolean;
    canAddElements?: boolean;
    sortable?: boolean;
    newDefaultEntry: T;
    onValueChange: (value: T[]) => void;
    className?: string;
    min?: number;
    max?: number;
}
type ArrayContainerItemProps = {
    nodeRef: (node: HTMLElement | null) => void;
    style: React.CSSProperties;
    dragHandleProps: any;
    index: number;
    internalId: number;
    size?: "small" | "medium";
    disabled: boolean;
    buildEntry: ArrayEntryBuilder;
    remove: (index: number) => void;
    copy: (index: number) => void;
    addInIndex?: (index: number) => void;
    canAddElements?: boolean;
    sortable: boolean;
    isDragging: boolean;
    storedProps?: object;
    updateItemCustomProps: (internalId: number, props: object) => void;
};
export declare function ArrayContainerItem({ nodeRef, style, dragHandleProps, index, internalId, size, disabled, buildEntry, remove, copy, addInIndex, canAddElements, sortable, isDragging, storedProps, updateItemCustomProps }: ArrayContainerItemProps): import("react/jsx-runtime").JSX.Element;
export declare function ArrayItemOptions({ dragHandleProps, direction, disabled, remove, index, copy, canAddElements, sortable, addInIndex, }: {
    dragHandleProps: any;
    direction?: "row" | "column";
    disabled: boolean;
    remove: (index: number) => void;
    index: number;
    copy: (index: number) => void;
    sortable: boolean;
    canAddElements?: boolean;
    addInIndex?: (index: number) => void;
}): import("react/jsx-runtime").JSX.Element;
export declare function ArrayContainer<T>({ droppableId, addLabel, value, disabled, buildEntry, size, onInternalIdAdded, includeAddButton: deprecatedIncludeAddButton, canAddElements: canAddElementsProp, sortable, newDefaultEntry, onValueChange, className, min, max }: ArrayContainerProps<T>): import("react/jsx-runtime").JSX.Element;
export declare function getRandomId(): number;
export {};
