/**
 * Created by hubert on 8/06/17.
 */
import "polymer/polymer-element.html";
import "../iron-list/iron-list.html";
import "iron-flex-layout/iron-flex-layout.html";
import "ozone-collection";
import "./ozone-iron-list.html";
import { Item } from 'ozone-type';
import { OzoneCollection } from 'ozone-collection';
import { SearchQuery } from "ozone-search-helper";
/**
 * <ozone-iron-list> is an iron-list composed of an ozone-connection.
 *
 * ```html
 *         <style>
 *             #scrollTheshold {
 *              height: 70vh; // container has to be a fix size see https://github.com/PolymerElements/iron-list#sizing-iron-list
 *              overflow-y: scroll;
 *             }
 *         </style>
 *         <div id="scrollTheshold">
 *           <ozone-iron-list
 *             id="ironList"
 *             items="{{searchResults}}"
 *             grid
 *             selection-enabled
 *             scroll-target="scrollTheshold">
 *             <template>
 *                 <div class="item">
 *                     <ozone-item-preview class="photoContent"
 *                      item-id="[[item.id]]"
 *                      item-data="[[item]]"
 *                      class="resultListItem"
 *                      selected="[[selected]]"
 *                     ></ozone-item-preview>
 *                     <ozone-item-action
 *                      class="actionPanel"
 *                      selected="[[selected]]" item-data="[[item]]">npo</ozone-item-action>
 *                     </div>
 *             </template>
 *           </ozone-iron-list>
 *         </div>
 * ```
 * ``` javascript
 * const myQuery = new SearchQuery()
 * // configure search query
 * this.$.ironList.search(myQuery)
 * ```
 * expose $.mosaicCollection for operation on the collection
 *
 * ### Implements
 *
 *  *iron-list*
 *
 *  ### Mixin
 *  Custom property | Description | Default
 *  ----------------|-------------|----------
 *  `--ozone-list-loader`  | css mixin for loader element | `{ background-color: #585185; color: white; position:relative; bottom:0; left:0; right:0; text-align: center; height: 44px; font-family:'Roboto', sans-serif; font-size: 13px; line-height: 44px; margin:0 -10px -10px;}`
 *
 */
export declare class IronList extends PolymerElement {
    scrollTarget?: PolymerElement;
    notifyResize(): void;
}
declare const OzoneIronList_base: Constructor<PolymerElement & IronList>;
export declare class OzoneIronList extends OzoneIronList_base {
    $: {
        selector: HTMLElement;
        mosaicCollection: OzoneCollection;
        items: PolymerElement;
    } | any;
    /**
     * total number of items found with the search
     */
    total?: number;
    /**
     * true indicate that all the data data still available with this search.
     */
    hasMoreData: boolean;
    items: Array<Item>;
    private _scrollTrigger;
    /**
     * scrollthreshold in percent to trigger loading of more items
     * @type {number}
     */
    scrollthresholdPc: number;
    private clearTriggers;
    ready(): void;
    private _checkScroll;
    private getScrollPercentage;
    /**
     * Load more items to display
     */
    loadMoreItems(): Promise<Array<Item>>;
    private toggleThreshold;
    /**
     * start search query
     * short hand for this.$.mosaicCollection.search
     * @param {SearchQuery} searchRequest
     * @return {Promise<Array<Item>>}
     */
    search(searchRequest: SearchQuery): Promise<Array<Item>>;
    /**
     * empty collection
     */
    clear(): Promise<void>;
    _afterCollectionUpdate(): void;
}
export {};
