import React, { ReactNode } from 'react';
import { SCFeedWidgetType } from '../../types/feed';
import { CustomAdvProps } from '../CustomAdv';
import { EndpointType, SCUserType } from '@selfcommunity/core';
export interface FeedSidebarProps {
    top: string | number;
    bottomBoundary: string | number;
}
export declare type FeedRef = {
    addFeedData: (obj: any) => void;
};
export interface FeedProps {
    /**
     * Id of the feed object
     * @default 'feed'
     */
    id?: string;
    /**
     * Overrides or extends the styles applied to the component.
     * @default null
     */
    className?: string;
    /**
     * Feed API Endpoint
     */
    endpoint: EndpointType;
    /**
     * End message, rendered when no more feed item can be displayed
     * @default <FormattedMessage id="ui.feed.noOtherFeedObject" defaultMessage="ui.feed.noOtherFeedObject" />
     */
    endMessage?: ReactNode;
    /**
     * Refresh message, rendered when no more feed item can be displayed
     * @default <FormattedMessage id="ui.feed.refreshRelease" defaultMessage="ui.feed.refreshRelease" />
     */
    refreshMessage?: ReactNode;
    /**
     * Widgets to insert into the feed
     * @default empty array
     */
    widgets?: SCFeedWidgetType[];
    /**
     * Component used to render single feed item retrieved by the endpoint
     */
    ItemComponent: React.ElementType;
    /**
     * Function used to convert the single result returned by the Endpoint into the props necessary to render the ItemComponent
     */
    itemPropsGenerator: (scUser: SCUserType, item: any) => any;
    /**
     * Function used to generate an id from the single result returned by the Endpoint
     */
    itemIdGenerator: (item: any) => any;
    /**
     * Props to spread to single feed item
     * @default empty object
     */
    ItemProps?: any;
    /**
     * Skeleton used to render loading effect during fetch
     */
    ItemSkeleton: React.ElementType;
    /**
     * Props to spread to single feed item skeleton
     * @default empty object
     */
    ItemSkeletonProps?: any;
    /**
     * Callback invoked whenever data is loaded during paging
     */
    onFetchData?: (data: any) => any;
    /**
     * Props to spread to single feed object
     * @default {top: 0, bottomBoundary: `#${id}`}
     */
    FeedSidebarProps?: FeedSidebarProps;
    /**
     * Props to spread to single custom adv element (this props can be used only if Custom Adv are enabled)
     * @default {}
     */
    CustomAdvProps?: CustomAdvProps;
}
declare const _default: React.ForwardRefExoticComponent<FeedProps & React.RefAttributes<FeedRef>>;
export default _default;
//# sourceMappingURL=Feed.d.ts.map