import { EventEmitter } from '../../stencil-public-runtime';
import { SearchChangeEvent } from './algolia-data';
import type { IndexResult, AlgoliaResultHit, PageChangeEventDetail, AlgoliaFacet } from './algolia-interface';
/**
 * Displays and syncs results from Algolia searches.
 * Must be nested within an nano-algolia component.
 * @slot start-template - Template string (format from nano-algolia 'tplEngine' property).
 * @slot start-output - A placeholder for template output.
 * @slot result-template - Template string (format from nano-algolia 'tplEngine' property).
 * @slot result-output - A placeholder for template output.
 * @slot end-template - Template string (format from nano-algolia 'tplEngine' property).
 * @slot end-output - A placeholder for template output.
 */
export declare class AlgoliaResults {
    el: HTMLNanoAlgoliaResultsElement;
    private resultTpl;
    private resultTplSlot;
    private startTpl;
    private startTplSlot;
    private endTpl;
    private endTplSlot;
    private outputSlot;
    private outputEle;
    private outputTo;
    private startOutputSlot;
    private endOutputSlot;
    private io?;
    private infiniteScrollBar;
    private append;
    private shouldClear;
    private currHitNum;
    showResults: boolean;
    tplRenderFn: (...args: any[]) => any;
    results: AlgoliaResultHit[];
    indexResults: IndexResult;
    resultsPage: number;
    changeEvent: SearchChangeEvent;
    facets: AlgoliaFacet;
    isLoading: boolean;
    /**
     * Load and append pages automatically on scroll
     */
    infiniteScroll: boolean;
    /**
     * Whether new pages loaded by pagination will replace or be appended to the results block
     * (this will be ignored if 'infiniteScroll' is set to true)
     */
    appendPages: boolean;
    /**
     * Emitted when the page number changes
     */
    nanoPageChanged: EventEmitter<PageChangeEventDetail>;
    /**
     * Emitted when templates are updated
     */
    nanoTplUpdated: EventEmitter<HTMLNanoAlgoliaResultsElement>;
    addContentIndex(): void;
    resultsChange(): void;
    headerFooterChange(): void;
    appendChange(): void;
    infiniteScrollChange(): void;
    handlePageChage(): void;
    handleLoading(): void;
    private shouldPageClear;
    private nextPage;
    private attachIO;
    private detachIO;
    private updateStartEndContent;
    private updateResultContent;
    connectedCallback(): void;
    componentDidLoad(): void;
    disconnectedCallback(): void;
    render(): any;
}
