import React from 'react';
import { CommentObjectProps } from '../CommentObject';
import { ReplyCommentObjectProps } from '../CommentObject/ReplyComment';
import { SCCommentsOrderBy } from '../../types/comments';
import { SCCommentType, SCFeedObjectType, SCFeedObjectTypologyType } from '@selfcommunity/core';
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;
    /**
     * CommentComponent component
     * Usefull to override the single Comment render component
     * @default CommentObject
     */
    CommentComponent?: React.ElementType;
    /**
     * Props to spread to single comment object
     * @default {variant: 'outlined'}
     */
    CommentComponentProps?: CommentObjectProps;
    /**
     * Props to spread to single comment object skeleton
     * @default CommentObjectSkeletonProps
     */
    CommentObjectSkeletonProps?: any;
    /**
     * ReplyCommentComponent component
     * Usefull to override the single ReplyComment render component
     * @default CommentObject
     */
    ReplyCommentComponent?: React.ElementType;
    /**
     * Props to spread to single reply comment object
     * @default {variant: 'outlined'}
     */
    ReplyCommentComponentProps?: ReplyCommentObjectProps;
    /**
     * 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 SCCommentsOrderBy.ADDED_AT_DESC
     */
    commentsOrderBy?: SCCommentsOrderBy;
    /**
     * 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
     * usefull when from a feedObject publish a comment
     * and this component show recent comments
     * @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;
}
/**
 *> API documentation for the Community-UI Comments Object component. Learn about the available props and the CSS API.

 #### Import

 ```jsx
 import {CommentsObject} from '@selfcommunity/ui';
 ```

 #### Component Name

 The name `SCCommentsObject` can be used when providing style overrides in the theme.

 #### CSS

 |Rule Name|Global class|Description|
 |---|---|---|
 |root|.SCCommentsObject-root|Styles applied to the root element.|
 |fixedPrimaryReply|.SCCommentsObject-fixed-primary-reply|Styles applied to the comment primary reply element.|
 |fixedTopPrimaryReply|.SCCommentsObject-fixed-top-primary-reply|Styles applied to the comment top primary reply element.|
 |fixedBottomPrimaryReply|.SCCommentsObject-fixed-bottom-primary-reply|Styles applied to the comment bottom primary reply element.|
 |commentNotFound|.SCCommentsObject-comment-not-found|Styles applied to the label 'Comment not found'.|
 |noOtherComments|.SCCommentsObject-no-other-comments|Styles applied to the label 'No other comments'.|
 |loadMoreCommentsButton|.SCCommentsObject-load-more-comments-button|Styles applied to the load more button.|
 |paginationLink|.SCCommentsObject-pagination-link|Styles applied to the pagination link.|
 |paginationFooter|.SCCommentsObject-pagination-footer|Styles applied to the pagination footer.|
 |commentsCounter|.SCCommentsObject-comments-counter|Styles applied to the comments counter element.|
 |noComments|.SCCommentsObject-no-comments|Styles applied to the 'no comments' section.|


 * @param inProps
 */
export default function CommentsObject(inProps: CommentsObjectProps): JSX.Element;
//# sourceMappingURL=CommentsObject.d.ts.map