import { InfiniteScrollCustomEvent } from "@ionic/core";
import { styleEvent } from "../style/style";
import { FeatureCollection, Feature, Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon } from "geojson";
export type limitedGeometry = Point | MultiPoint | LineString | MultiLineString | Polygon | MultiPolygon;
export declare class FeatureList {
  data: FeatureCollection<limitedGeometry>;
  limit: number;
  /**
   * The number of features to render in each batch. Additional batches
   * are added as needed using `ion-infinite-scroll`.
   */
  readonly batchSize: number;
  /**
   * The component used to render the features in the list.
   */
  readonly component: string;
  /**
   * Options passed to the component as properties.
   */
  readonly componentOptions: {
    [key: string]: any;
  };
  /**
   * Which features to display: all features from the source, or just those
   * currently within the map extent.
   */
  readonly display: "all" | "visible";
  /**
   * An array of GeoJSON features to display. Currently only point features
   * are supported.
   */
  features: Array<Feature<limitedGeometry>>;
  /**
   * Wrap the component in an `ion-item`.
   */
  readonly item: boolean;
  /**
   * The type of spinner used in the `ion-infinite-scroll-content`.
   */
  readonly loadingSpinner: string;
  /**
   * Text to display while features are loading in the
   * `ion-infinite-scroll-content`.
   */
  readonly loadingText: string;
  /**
   * ID of the `gl-map`.
   */
  readonly mapId: string;
  /**
   * Property by which features should be sorted.
   */
  readonly orderBy: string;
  /**
   * Order in which to sort features.
   */
  readonly order: "asc" | "desc" | "none";
  /**
   * ID of the `gl-style` element containing the feature source.
   */
  readonly styleId: string;
  /**
   * ID of the source containing the features.
   */
  readonly sourceId: string;
  componentWillLoad(): Promise<void>;
  componentDidLoad(): void;
  handleInfiniteScroll(e: InfiniteScrollCustomEvent): void;
  handleStyleUpdated(e: CustomEvent<styleEvent>): void;
  handleSourceId(): Promise<void>;
  private filter;
  private sort;
  render(): any;
}
