import React, { SyntheticEvent } from 'react';
import { SCCategoryType, SCFeedDiscussionType, SCFeedObjectTypologyType, SCFeedPostType, SCFeedStatusType, SCMediaType, SCPollType, SCTagType } from '@selfcommunity/core';
import { DialogProps } from '@mui/material';
import { SCMediaObjectType } from '../../types/media';
import { DistributiveOmit } from '@mui/types';
import { OverrideProps } from '@mui/material/OverridableComponent';
export interface ComposerTypeMap<P = {}, D extends React.ElementType = 'div'> {
    props: P & DistributiveOmit<DialogProps, 'defaultValue'> & {
        /**
         * Id of feed object
         * @default null
         */
        feedObjectId?: number;
        /**
         * Type of feed object
         * @default null
         */
        feedObjectType?: SCFeedObjectTypologyType;
        /**
         * Feed object
         * @default null
         */
        feedObject?: SCFeedDiscussionType | SCFeedPostType | SCFeedStatusType | null;
        /**
         * Initialization Data for the Composer, this is a hook to generate custom posts
         * @default null
         */
        defaultValue?: {
            title?: string;
            text?: string;
            categories?: SCCategoryType[];
            audience?: string;
            addressing?: SCTagType[];
            medias?: SCMediaType[];
            poll?: SCPollType;
            location?: string;
        };
        /**
         * Initial view to render
         * @default 'main'
         */
        view?: string;
        /**
         * Media objects available
         * @default Image, Document, Link
         */
        mediaObjectTypes?: SCMediaObjectType[];
        /**
         * Callback triggered on success contribution creation
         * @default null
         */
        onSuccess?: (res: any) => void;
        /**
         * Callback triggered on close click
         * @default null
         */
        onClose?: (event: SyntheticEvent) => void;
    };
    defaultComponent: D;
}
export declare type ComposerProps<D extends React.ElementType = ComposerTypeMap['defaultComponent'], P = {}> = OverrideProps<ComposerTypeMap<P, D>, D>;
export declare const MAIN_VIEW = "main";
export declare const AUDIENCE_VIEW = "audience";
export declare const POLL_VIEW = "poll";
export declare const LOCATION_VIEW = "location";
/**
 > API documentation for the Community-UI Composer component. Learn about the available props and the CSS API.
 > The Composer component contains the logic around the creation of [Post](https://developers.selfcommunity.com/docs/apireference/v2/post/create_a_post) and [Discussion](https://developers.selfcommunity.com/docs/apireference/v2/discussion/create_a_discussion) objects.
 *
 #### Import
 ```jsx
 import {Composer} from '@selfcommunity/ui';
 ```
 #### Component Name
 The name `SCComposer` can be used when providing style overrides in the theme.

 #### CSS

 |Rule Name|Global class|Description|
 |---|---|---|
 |root|.SCComposer-root|Styles applied to the root element.|
 |title|.SCComposer-title|Styles applied to the title element.|
 |types|.SCComposer-types|Styles applied to the types element.|
 |avatar|.SCComposer-avatar|Styles applied to the avatar element.|
 |content|.SCComposer-content|Styles applied to the content.|
 |mediaContent|.SCComposer-mediaContent|Styles applied to the media content.|
 |audienceContent|.SCComposer-audienceContent|Styles applied to the audience content.|
 |locationContent|.SCComposer-locationContent|Styles applied to the location content.|
 |block|.SCComposer-block|Styles applied to the block element.|
 |editor|.SCComposer-editor|Styles applied to the editor element.|
 |divider|.SCComposer-divider|Styles applied to the divider element.|
 |medias|.SCComposer-medias|Styles applied to the medias.|
 |location|.SCComposer-location|Styles applied to the location element.|
 |audience|.SCComposer-audience|Styles applied to the audience element.|
 |mediasActions|.SCComposer-mediasActions|Styles applied to the medias actions section.|
 |sortableMedia|.SCComposer-sortableMedia|Styles applied to the sortable media element.|
 |sortableMediaCover|.SCComposer-sortableMediaCover|Styles applied to the sortable media cover element.|
 |links|.SCComposer-links|Styles applied to the links element.|
 |actions|.SCComposer-actions|Styles applied to the actions section.|
 |actionInput|.SCComposer-actionInput|Styles applied to the action input element.|
 |badgeError|.SCComposer-badgeError|Styles applied to the badge error element.|


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