import { Component } from 'react';
import { QueryElement } from '../StructuredQuery';
import { Filter } from '../Filter';
export declare type ChipSpawnPosition = {
    startIndex: number;
    cursorIndex: number;
};
declare type InputSupperProps = {
    elements: QueryElement[];
    className?: string;
    availableFilters: Filter[];
    onChange: (newElements: QueryElement[]) => void;
};
declare type InputSupperState = {
    focusElementIndex?: number;
    deleteStagedIndex?: number;
    deleteExpiry?: number;
};
export declare class InputSupper extends Component<InputSupperProps, InputSupperState> {
    private deleteExpiryInterval?;
    private elementRefs;
    state: InputSupperState;
    componentDidMount(): void;
    componentDidUpdate(prevProps: InputSupperProps): void;
    focusElement: (index: number, focusEnd: boolean) => void;
    focusElementAt: (index: number, offset: number) => void;
    selectElement: (index: number) => void;
    inputUpdated: (index: number, value: string, label?: string | undefined) => void;
    spawnChip: (index: number, chipPosition: ChipSpawnPosition, filter: Filter) => void;
    onNegateClicked: (index: number) => void;
    onDeleteClicked: (index: number) => void;
    deleteChip: (index: number) => void;
    deleteExpiryTick: () => void;
    renderElement: (e: QueryElement, index: number) => JSX.Element;
    render(): JSX.Element;
}
export {};
