import { SCCommentType, SCFeedObjectType, SCFeedObjectTypologyType } from '@selfcommunity/core';
import { CommentObjectProps } from '../CommentObject';
import { ReplyCommentObjectProps } from '../CommentObject/ReplyComment';
import { CardProps } from '@mui/material';
import { CommentsOrderBy } from '../../types/comments';
export interface CommentsObjectProps {
    /**
     * Id of the CommentsObject
     * @default 'comments_object_<feedObjectType>_<feedObjectId | feedObject.id>'
     */
    id?: string;
    /**
     * Overrides or extends the styles applied to the component.
     * @default null
     */
    className?: string;
    /**
     * Id of feed object
     * @default null
     */
    feedObjectId?: number;
    /**
     * Feed object
     * @default null
     */
    feedObject?: SCFeedObjectType;
    /**
     * Type of feed object
     * @default SCFeedObjectTypologyType.POST
     */
    feedObjectType?: SCFeedObjectTypologyType;
    /**
     * Id of the comment object
     * @default null
     */
    commentObjectId?: number;
    /**
     * Comment object
     * @default null
     */
    commentObject?: SCCommentType;
    /**
     * Props to spread to single comment object
     * @default {variant: 'outlined'}
     */
    CommentObjectProps?: CommentObjectProps;
    /**
     * Props to spread to single comment object skeleton
     * @default {variant: 'outlined'}
     */
    CommentObjectSkeletonProps?: CardProps;
    /**
     * Props to spread to single reply comment object
     * @default {variant: 'outlined'}
     */
    ReplyCommentObjectProps?: ReplyCommentObjectProps;
    /**
     * renderComment function
     * Usefull to override the single Comment
     * @default null
     */
    renderComment?: (SCCommentType: any) => JSX.Element;
    /**
     * renderNoComment function
     * invoked when no comments founds
     * @default null
     */
    renderNoComments?: () => JSX.Element;
    /**
     * page
     * @default 1
     */
    page?: number;
    /**
     * comments per page
     * @default null
     */
    commentsPageCount?: number;
    /**
     * comments orderBy
     * @default CommentsOrderBy.ADDED_AT_DESC
     */
    commentsOrderBy?: CommentsOrderBy;
    /**
     * show title (number of comments)
     */
    showTitle?: boolean;
    /**
     * enable/disable infinite scrolling
     * @default true
     */
    infiniteScrolling?: boolean;
    /**
     * show/hide primary content reply box
     * @default false
     */
    hidePrimaryReply?: boolean;
    /**
     * position the primary reply in the bottom of the component
     * @default false
     */
    fixedPrimaryReply?: boolean;
    /**
     * number of box of skeleton loading to show during loading phase
     * @default 3
     */
    commentsLoadingBoxCount?: number;
    /**
     * additional comments to show in the header
     * @default []
     */
    additionalHeaderComments?: SCCommentType[];
    /**
     * Callback invoked when load comments page
     * Usefull to sync location path for SEO optimization
     * @param page
     */
    onChangePage?: (page: any) => any;
    /**
     * show/hide box advertising
     * @default false
     */
    hideAdvertising?: boolean;
    /**
     * Other props
     */
    [p: string]: any;
}
export default function CommentsObject(props: CommentsObjectProps): JSX.Element;
//# sourceMappingURL=CommentsObject.d.ts.map