import * as H from 'history';
import * as React from 'react';
import { Observable } from 'rxjs';
import { Location } from 'sourcegraph/module/protocol/plainTypes';
import { ErrorLike } from '../../../util/errors';
interface Props {
    /**
     * The function called to query for file locations.
     */
    query: () => Observable<{
        loading: boolean;
        locations: Location[];
    }>;
    /** An observable that upon emission causes the connection to refresh the data (by calling queryConnection). */
    updates?: Observable<void>;
    /**
     * Used along with the "inputRevision" prop to preserve the original Git revision specifier for the current
     * repository.
     */
    inputRepo?: string;
    /**
     * If given, use this revision in the link URLs to the files (instead of empty) for locations whose repository
     * matches the "inputRepo" prop.
     */
    inputRevision?: string;
    /** The icon to use for each location. */
    icon: React.ComponentType<{
        className?: string;
    }>;
    /** Called when an item in the tree is selected. */
    onSelectTree?: () => void;
    /** Called when a location is selected. */
    onSelectLocation?: () => void;
    /** The plural noun described by the locations, such as "references" or "implementations". */
    pluralNoun: string;
    className: string;
    isLightTheme: boolean;
    location: H.Location;
}
interface State {
    /**
     * Locations (inside files identified by LSP-style git:// URIs) to display, or an error if they failed to load.
     * Undefined while loading.
     */
    locationsOrError?: Location[] | ErrorLike;
    /** Whether to show a loading indicator. */
    loading: boolean;
    selectedRepo?: string;
}
/**
 * Displays a two-column view, with a repository list, and a list of file excerpts for the selected tree item.
 */
export declare class FileLocationsTree extends React.PureComponent<Props, State> {
    state: State;
    private componentUpdates;
    private locationsUpdates;
    private subscriptions;
    componentDidMount(): void;
    componentWillReceiveProps(nextProps: Props): void;
    componentWillUnmount(): void;
    render(): JSX.Element | null;
    private onSelectTree;
}
export {};
//# sourceMappingURL=FileLocationsTree.d.ts.map