import { TranslationBundle } from '@jupyterlab/translation';
import * as React from 'react';
import { Git, IGitExtension } from '../tokens';
/**
 * Interface describing component properties.
 */
export interface ITagMenuProps {
    /**
     * Current list of tags.
     */
    tagsList: Git.ITag[];
    /**
     * Boolean indicating whether branching is disabled.
     */
    branching: boolean;
    /**
     * List of prior commits.
     */
    pastCommits: Git.ISingleCommitInfo[];
    /**
     * Git extension data model.
     */
    model: IGitExtension;
    /**
     * The application language translator.
     */
    trans: TranslationBundle;
}
/**
 * Interface describing component state.
 */
export interface ITagMenuState {
    /**
     * Boolean indicating whether to show a dialog to create a new tag.
     */
    tagDialog: boolean;
    /**
     * Menu filter.
     */
    filter: string;
}
/**
 * React component for rendering a tag menu.
 */
export declare class TagMenu extends React.Component<ITagMenuProps, ITagMenuState> {
    /**
     * Returns a React component for rendering a tag menu.
     *
     * @param props - component properties
     * @returns React component
     */
    constructor(props: ITagMenuProps);
    /**
     * Renders the component.
     *
     * @returns React element
     */
    render(): React.ReactElement;
    /**
     * Renders a tag input filter.
     *
     * @returns React element
     */
    private _renderFilter;
    /**
     * Renders list of tags.
     *
     * @returns React element
     */
    private _renderTagList;
    /**
     * Renders a menu item.
     *
     * @param props Row properties
     * @returns React element
     */
    private _renderItem;
    /**
     * Renders a dialog for creating a new tag.
     *
     * @returns React element
     */
    private _renderNewTagDialog;
    /**
     * Callback invoked upon a change to the menu filter.
     *
     * @param event - event object
     */
    private _onFilterChange;
    /**
     * Callback invoked to reset the menu filter.
     */
    private _resetFilter;
    /**
     * Callback invoked upon clicking a button to create a new tag.
     *
     * @param event - event object
     */
    private _onNewTagClick;
    /**
     * Callback invoked upon closing a dialog to create a new tag.
     */
    private _onNewTagDialogClose;
    /**
     * Returns a callback which is invoked upon clicking a tag.
     *
     * @param tag - tag
     * @returns callback
     */
    private _onTagClickFactory;
}
