import { EventEmitter } from '../../stencil-public-runtime';
import { FeedItem } from './feed-item/feed-item.types';
import { LimeWebComponent, LimeWebComponentContext, LimeWebComponentPlatform } from '@limetech/lime-web-components';
/**
 * Feed
 * Feed is a timeline that displays its children (feed items) in a chronological order.
 *
 * The feed automatically groups items into days, and for each group,
 * it shows the dates as a heading.
 *
 * Also, when a user or author creates several feed items in a close timespan,
 * the feed automatically bundles these items together, removing some repetitive and
 * unnecessary visual details of the bundled posts, from the timeline.
 *
 * @exampleComponent limebb-example-feed-basic
 * @exampleComponent limebb-example-feed-author
 * @exampleComponent limebb-example-feed-author-picture
 * @exampleComponent limebb-example-feed-item-heading
 * @exampleComponent limebb-example-feed-item-long-heading
 * @exampleComponent limebb-example-feed-unpromoted-actions
 * @exampleComponent limebb-example-feed-promoted-actions
 * @exampleComponent limebb-example-feed-relations
 * @exampleComponent limebb-example-feed-tall-item
 * @exampleComponent limebb-example-feed-helper-text
 * @exampleComponent limebb-example-feed-thumbnails
 * @exampleComponent limebb-example-feed-load-more
 * @exampleComponent limebb-example-feed-reverse-sorting
 * @exampleComponent limebb-example-feed-highlight-an-item
 * @exampleComponent limebb-example-feed-error
 * @exampleComponent limebb-example-feed-item-types
 * @exampleComponent limebb-example-feed-item-color-coding
 * @exampleComponent limebb-example-feed-new-items
 * @beta
 */
export declare class Feed implements LimeWebComponent {
    /**
     * @inheritdoc
     */
    platform: LimeWebComponentPlatform;
    /**
     * @inheritdoc
     */
    context: LimeWebComponentContext;
    /**
     * List of items to display in the feed.
     */
    items: FeedItem[];
    /**
     * The message shown when there are no items in the feed.
     */
    emptyStateMessage: string;
    /**
     * The heading of the empty state message.
     */
    heading: string;
    /**
     * True if items have not finished loading.
     */
    loading: boolean;
    /**
     * Number of minutes to take into account, when bundling several
     * feed-items that are created by the same author in a close timespan.
     */
    minutesOfProximity: number;
    /**
     * The total number of items available
     */
    totalCount: number;
    /**
     * Defines the chronological sorting of the array of items which are
     * provided to the feed. It is used for visual grouping & bundling logic,
     * as well as rendering the last visited timestamp in the right place.
     * - 'ASC'  : Items are provided oldest -> newest (newest last).
     * Often used when the UI shows newer items near the bottom and older ones above.
     * - 'DESC' : Items are provided newest -> oldest (newest first).
     * Often used when the UI places the latest item at the top.
     *
     * :::important
     * This component does not re-sort the provided `items`.
     * It only renders them in the order received from the consumer.
     * :::
     */
    direction: 'ASC' | 'DESC';
    /**
     * The date and time of the last time the user visited the feed.
     * When provided, the feed will display a divider line between the
     * last visited items (the old items which have a date and time earlier than
     * `lastVisitedTimestamp`) and the newer items.
     *
     * If there are no newer items, the divider line will not be displayed.
     */
    lastVisitedTimestamp?: string | Date | null;
    /**
     * The ID of the item to highlight. When this value changes,
     * the feed will attempt to find and highlight the specified item.
     * If the item is not found, the `highlightedItemIdNotFound` event will be emitted.
     */
    highlightedItemId?: string | number;
    /**
     * Emitted when the load more button is clicked
     */
    loadMore: EventEmitter<void>;
    /**
     * Emitted when an item with requested `id` to highlight
     * is not found in the current set of loaded items
     */
    highlightedItemIdNotFound: EventEmitter<{
        id: string | number;
    }>;
    private feedItemElement;
    connectedCallback(): void;
    disconnectedCallback(): void;
    render(): any;
    private renderSpinner;
    private renderEmptyFeedMessage;
    private renderFeedItems;
    private isNewItem;
    private isBundled;
    private renderLoadMore;
    private handleLoadMore;
    private get dateTimeFormatter();
    private get loadMoreLabel();
    private get translator();
    /**
     * Groups feed items by calendar date (formatted using date formatter 'date').
     * Returns an array of groups each containing the display date string and
     * the original items with their indices.
     */
    private get groupedItems();
    highlightedItemIdChanged(newValue: string | number): void;
    private highlightItem;
    private get highlighter();
}
//# sourceMappingURL=feed.d.ts.map