import * as H from 'history';
import * as React from 'react';
import * as GQL from '../../backend/graphqlschema';
import { ErrorLike } from '../../util/errors';
interface SearchResultsListProps {
    isLightTheme: boolean;
    location: H.Location;
    history: H.History;
    user: GQL.IUser | null;
    resultsOrError?: GQL.ISearchResults | ErrorLike;
    onShowMoreResultsClick: () => void;
    allExpanded: boolean;
    onExpandAllResultsToggle: () => void;
    showSavedQueryModal: boolean;
    onSavedQueryModalClose: () => void;
    onDidCreateSavedQuery: () => void;
    onSaveQueryClick: () => void;
    didSave: boolean;
    onHelpPopoverToggle: () => void;
}
interface State {
    resultsShown: number;
    visibleItems: Set<number>;
    didScrollToItem: boolean;
}
export declare class SearchResultsList extends React.PureComponent<SearchResultsListProps, State> {
    /** Emits when a result was either scrolled into or out of the page */
    private visibleItemChanges;
    private nextItemVisibilityChange;
    /** Emits with the index of the first visible result on the page */
    private firstVisibleItems;
    /** Refrence to the current scrollable list element */
    private scrollableElementRef;
    private setScrollableElementRef;
    /** Emits with the <VirtualList> elements */
    private virtualListContainerElements;
    private nextVirtualListContainerElement;
    private jumpToTopClicks;
    private nextJumpToTopClick;
    private subscriptions;
    constructor(props: SearchResultsListProps);
    componentDidUpdate(): void;
    componentWillUnmount(): void;
    render(): React.ReactNode;
    /**
     * Renders the given recommendations in a list if multiple, otherwise returns the first one or undefined
     */
    private renderRecommendations;
    private renderResult;
    /** onBottomHit increments the amount of results to be shown when we have scrolled to the bottom of the list. */
    private onBottomHit;
    /**
     * getCheckpoint gets the location from the hash in the URL. It is used to scroll to the result on page load of the given URL.
     */
    private getCheckpoint;
    /** setCheckpoint sets the hash in the URL. It will be used to scroll to the result on page load of the given URL. */
    private setCheckpoint;
    private logEvent;
}
export {};
//# sourceMappingURL=SearchResultsList.d.ts.map