import React, { ChangeEvent } from "react";
import { ButtonEvent } from "./AccessibleButton";
interface IItemProps {
    index: number;
    value?: string;
    onRemove?(index: number): void;
}
interface IItemState {
    verifyRemove: boolean;
}
export declare class EditableItem extends React.Component<IItemProps, IItemState> {
    state: {
        verifyRemove: boolean;
    };
    private onRemove;
    private onDontRemove;
    private onActuallyRemove;
    render(): React.ReactNode;
}
interface IProps {
    id: string;
    items: string[];
    itemsLabel?: string;
    noItemsLabel?: string;
    placeholder?: string;
    newItem?: string;
    canEdit?: boolean;
    canRemove?: boolean;
    suggestionsListId?: string;
    onItemAdded?(item?: string): void;
    onItemRemoved?(index: number): void;
    onNewItemChanged?(item: string): void;
}
export default class EditableItemList<P = {}> extends React.PureComponent<IProps & P> {
    protected onItemAdded: (e: ButtonEvent) => void;
    protected onItemRemoved: (index: number) => void;
    protected onNewItemChanged: (e: ChangeEvent<HTMLInputElement>) => void;
    protected renderNewItemField(): JSX.Element;
    render(): React.ReactNode;
}
export {};
