import React from 'react';
import { StatusOption } from '@parlor/common';
import { PillVariant } from '@parlor/ui/pill';
import { ByLine } from './components/byLine';
import { ArticleVariant } from './types';
import { PostWithResponses } from '../posts';
import { LexicalEditor } from 'lexical';
export type ArticleProps = {
    /**
     * Survey component.
     */
    Survey?: JSX.Element;
    authorInfo?: JSX.Element;
    /**
     * Array of buttons. Array elements must use Button component.
     */
    buttons?: Array<JSX.Element>;
    /**
     * Array of Comment component.
     */
    comments?: JSX.Element | Array<JSX.Element>;
    /**
     * Container classes
     */
    containerClasses?: string | string[];
    /**
     * Creation date.
     */
    date: string;
    /**
     * @description article description
     * @type {string}
     */
    description?: string;
    /**
     * Image to be shown, pass as url.
     */
    featuredImage?: string;
    /**
     * Opportunity to get comment input text.
     * Use this function if showCommentInput is true.
     */
    handleCommentText?: (innerHTML: string) => void;
    /**
     * Whether to show topic section or not.
     */
    isShowingTopic?: boolean;
    /**
     * Article onClick.
     */
    onClick?: (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
    /**
     * Back buttons action
     */
    onClose?: () => void;
    /**
     * Handle comment submit
     */
    onCommentSubmit?: (editor: LexicalEditor) => any;
    /**
     * Header pills.
     */
    pills?: PillVariant[] | Partial<Record<PillVariant, boolean>>;
    showAuthor?: boolean;
    /**
     * Whether to show comment input field or not.
     */
    showCommentInput?: boolean;
    /**
     * @deprecated use authorInfo instead
     * @description author which was selected as to be shown from article configurations
     * @type {User | TeamProfile}
     */
    shownAuthor?: {
        avatarUrl: string;
        fullName?: string;
        role?: string;
    };
    /**
     * StatusOption
     */
    statusOption?: StatusOption;
    /**
     * Survey Input Report Component
     */
    surveyInputReport?: JSX.Element;
    /**
     * Headers title.
     */
    title: string;
    topic?: JSX.Element | JSX.Element[];
    /**
     * Survey component type.
     */
    useSurveyInputs?: 'default' | 'floated';
    /**
     * Articles variant.
     */
    variant?: `${ArticleVariant}` | ArticleVariant;
    postData?: Partial<PostWithResponses>;
    isPreview?: boolean;
    isWide?: boolean;
};
export declare function Article({ variant, title, onClose, pills: _pills, featuredImage, date, buttons, shownAuthor, authorInfo, description, comments, useSurveyInputs, Survey, onClick, showCommentInput, onCommentSubmit, handleCommentText, surveyInputReport, containerClasses, isShowingTopic, topic, statusOption, showAuthor, postData, isPreview, isWide, }: ArticleProps): JSX.Element;
export declare namespace Article {
    var Container: typeof import("./components/container").Container;
    var FeaturedImage: typeof import("./components/featured-image").FeaturedImage;
    var Byline: typeof ByLine;
    var Header: typeof import("./components/header").Header;
    var Content: typeof import("./components/content").Content;
    var Buttons: typeof import("./components/buttons").Buttons;
}
