import DOMPurify from 'dompurify';
import React from 'react';
import './Markdown.less';
export interface IMarkdownProps {
    [key: string]: any;
    /** markdown */
    message: string;
    /** optional tag */
    tag?: string;
    /** trim the contents before generating markdown; markdown treats four leading spaces as a <pre> tag, so if you are
     *  using string templates and the content starts on a new line, you probably want this set to true */
    trim?: boolean;
    /** The className(s) to apply to the tag (.Markdown class is always applied) */
    className?: string;
    /** Options passed to DOMPurify. Examples: https://github.com/cure53/DOMPurify/tree/master/demos#what-is-this */
    options?: DOMPurify.Config;
}
/**
 * Renders markdown into a div (or some other tag)
 * Extra props are passed through to the rendered tag
 */
export declare function Markdown(props: IMarkdownProps): React.DOMElement<{
    className: string;
    children?: React.ReactNode;
    dangerouslySetInnerHTML?: {
        __html: string;
    };
    onCopy?: React.ClipboardEventHandler<any>;
    onCopyCapture?: React.ClipboardEventHandler<any>;
    onCut?: React.ClipboardEventHandler<any>;
    onCutCapture?: React.ClipboardEventHandler<any>;
    onPaste?: React.ClipboardEventHandler<any>;
    onPasteCapture?: React.ClipboardEventHandler<any>;
    onCompositionEnd?: React.CompositionEventHandler<any>;
    onCompositionEndCapture?: React.CompositionEventHandler<any>;
    onCompositionStart?: React.CompositionEventHandler<any>;
    onCompositionStartCapture?: React.CompositionEventHandler<any>;
    onCompositionUpdate?: React.CompositionEventHandler<any>;
    onCompositionUpdateCapture?: React.CompositionEventHandler<any>;
    onFocus?: React.FocusEventHandler<any>;
    onFocusCapture?: React.FocusEventHandler<any>;
    onBlur?: React.FocusEventHandler<any>;
    onBlurCapture?: React.FocusEventHandler<any>;
    onChange?: React.FormEventHandler<any>;
    onChangeCapture?: React.FormEventHandler<any>;
    onBeforeInput?: React.FormEventHandler<any>;
    onBeforeInputCapture?: React.FormEventHandler<any>;
    onInput?: React.FormEventHandler<any>;
    onInputCapture?: React.FormEventHandler<any>;
    onReset?: React.FormEventHandler<any>;
    onResetCapture?: React.FormEventHandler<any>;
    onSubmit?: React.FormEventHandler<any>;
    onSubmitCapture?: React.FormEventHandler<any>;
    onInvalid?: React.FormEventHandler<any>;
    onInvalidCapture?: React.FormEventHandler<any>;
    onLoad?: React.ReactEventHandler<any>;
    onLoadCapture?: React.ReactEventHandler<any>;
    onError?: React.ReactEventHandler<any>;
    onErrorCapture?: React.ReactEventHandler<any>;
    onKeyDown?: React.KeyboardEventHandler<any>;
    onKeyDownCapture?: React.KeyboardEventHandler<any>;
    onKeyPress?: React.KeyboardEventHandler<any>;
    onKeyPressCapture?: React.KeyboardEventHandler<any>;
    onKeyUp?: React.KeyboardEventHandler<any>;
    onKeyUpCapture?: React.KeyboardEventHandler<any>;
    onAbort?: React.ReactEventHandler<any>;
    onAbortCapture?: React.ReactEventHandler<any>;
    onCanPlay?: React.ReactEventHandler<any>;
    onCanPlayCapture?: React.ReactEventHandler<any>;
    onCanPlayThrough?: React.ReactEventHandler<any>;
    onCanPlayThroughCapture?: React.ReactEventHandler<any>;
    onDurationChange?: React.ReactEventHandler<any>;
    onDurationChangeCapture?: React.ReactEventHandler<any>;
    onEmptied?: React.ReactEventHandler<any>;
    onEmptiedCapture?: React.ReactEventHandler<any>;
    onEncrypted?: React.ReactEventHandler<any>;
    onEncryptedCapture?: React.ReactEventHandler<any>;
    onEnded?: React.ReactEventHandler<any>;
    onEndedCapture?: React.ReactEventHandler<any>;
    onLoadedData?: React.ReactEventHandler<any>;
    onLoadedDataCapture?: React.ReactEventHandler<any>;
    onLoadedMetadata?: React.ReactEventHandler<any>;
    onLoadedMetadataCapture?: React.ReactEventHandler<any>;
    onLoadStart?: React.ReactEventHandler<any>;
    onLoadStartCapture?: React.ReactEventHandler<any>;
    onPause?: React.ReactEventHandler<any>;
    onPauseCapture?: React.ReactEventHandler<any>;
    onPlay?: React.ReactEventHandler<any>;
    onPlayCapture?: React.ReactEventHandler<any>;
    onPlaying?: React.ReactEventHandler<any>;
    onPlayingCapture?: React.ReactEventHandler<any>;
    onProgress?: React.ReactEventHandler<any>;
    onProgressCapture?: React.ReactEventHandler<any>;
    onRateChange?: React.ReactEventHandler<any>;
    onRateChangeCapture?: React.ReactEventHandler<any>;
    onSeeked?: React.ReactEventHandler<any>;
    onSeekedCapture?: React.ReactEventHandler<any>;
    onSeeking?: React.ReactEventHandler<any>;
    onSeekingCapture?: React.ReactEventHandler<any>;
    onStalled?: React.ReactEventHandler<any>;
    onStalledCapture?: React.ReactEventHandler<any>;
    onSuspend?: React.ReactEventHandler<any>;
    onSuspendCapture?: React.ReactEventHandler<any>;
    onTimeUpdate?: React.ReactEventHandler<any>;
    onTimeUpdateCapture?: React.ReactEventHandler<any>;
    onVolumeChange?: React.ReactEventHandler<any>;
    onVolumeChangeCapture?: React.ReactEventHandler<any>;
    onWaiting?: React.ReactEventHandler<any>;
    onWaitingCapture?: React.ReactEventHandler<any>;
    onAuxClick?: React.MouseEventHandler<any>;
    onAuxClickCapture?: React.MouseEventHandler<any>;
    onClick?: React.MouseEventHandler<any>;
    onClickCapture?: React.MouseEventHandler<any>;
    onContextMenu?: React.MouseEventHandler<any>;
    onContextMenuCapture?: React.MouseEventHandler<any>;
    onDoubleClick?: React.MouseEventHandler<any>;
    onDoubleClickCapture?: React.MouseEventHandler<any>;
    onDrag?: React.DragEventHandler<any>;
    onDragCapture?: React.DragEventHandler<any>;
    onDragEnd?: React.DragEventHandler<any>;
    onDragEndCapture?: React.DragEventHandler<any>;
    onDragEnter?: React.DragEventHandler<any>;
    onDragEnterCapture?: React.DragEventHandler<any>;
    onDragExit?: React.DragEventHandler<any>;
    onDragExitCapture?: React.DragEventHandler<any>;
    onDragLeave?: React.DragEventHandler<any>;
    onDragLeaveCapture?: React.DragEventHandler<any>;
    onDragOver?: React.DragEventHandler<any>;
    onDragOverCapture?: React.DragEventHandler<any>;
    onDragStart?: React.DragEventHandler<any>;
    onDragStartCapture?: React.DragEventHandler<any>;
    onDrop?: React.DragEventHandler<any>;
    onDropCapture?: React.DragEventHandler<any>;
    onMouseDown?: React.MouseEventHandler<any>;
    onMouseDownCapture?: React.MouseEventHandler<any>;
    onMouseEnter?: React.MouseEventHandler<any>;
    onMouseLeave?: React.MouseEventHandler<any>;
    onMouseMove?: React.MouseEventHandler<any>;
    onMouseMoveCapture?: React.MouseEventHandler<any>;
    onMouseOut?: React.MouseEventHandler<any>;
    onMouseOutCapture?: React.MouseEventHandler<any>;
    onMouseOver?: React.MouseEventHandler<any>;
    onMouseOverCapture?: React.MouseEventHandler<any>;
    onMouseUp?: React.MouseEventHandler<any>;
    onMouseUpCapture?: React.MouseEventHandler<any>;
    onSelect?: React.ReactEventHandler<any>;
    onSelectCapture?: React.ReactEventHandler<any>;
    onTouchCancel?: React.TouchEventHandler<any>;
    onTouchCancelCapture?: React.TouchEventHandler<any>;
    onTouchEnd?: React.TouchEventHandler<any>;
    onTouchEndCapture?: React.TouchEventHandler<any>;
    onTouchMove?: React.TouchEventHandler<any>;
    onTouchMoveCapture?: React.TouchEventHandler<any>;
    onTouchStart?: React.TouchEventHandler<any>;
    onTouchStartCapture?: React.TouchEventHandler<any>;
    onPointerDown?: React.PointerEventHandler<any>;
    onPointerDownCapture?: React.PointerEventHandler<any>;
    onPointerMove?: React.PointerEventHandler<any>;
    onPointerMoveCapture?: React.PointerEventHandler<any>;
    onPointerUp?: React.PointerEventHandler<any>;
    onPointerUpCapture?: React.PointerEventHandler<any>;
    onPointerCancel?: React.PointerEventHandler<any>;
    onPointerCancelCapture?: React.PointerEventHandler<any>;
    onPointerEnter?: React.PointerEventHandler<any>;
    onPointerEnterCapture?: React.PointerEventHandler<any>;
    onPointerLeave?: React.PointerEventHandler<any>;
    onPointerLeaveCapture?: React.PointerEventHandler<any>;
    onPointerOver?: React.PointerEventHandler<any>;
    onPointerOverCapture?: React.PointerEventHandler<any>;
    onPointerOut?: React.PointerEventHandler<any>;
    onPointerOutCapture?: React.PointerEventHandler<any>;
    onGotPointerCapture?: React.PointerEventHandler<any>;
    onGotPointerCaptureCapture?: React.PointerEventHandler<any>;
    onLostPointerCapture?: React.PointerEventHandler<any>;
    onLostPointerCaptureCapture?: React.PointerEventHandler<any>;
    onScroll?: React.UIEventHandler<any>;
    onScrollCapture?: React.UIEventHandler<any>;
    onWheel?: React.WheelEventHandler<any>;
    onWheelCapture?: React.WheelEventHandler<any>;
    onAnimationStart?: React.AnimationEventHandler<any>;
    onAnimationStartCapture?: React.AnimationEventHandler<any>;
    onAnimationEnd?: React.AnimationEventHandler<any>;
    onAnimationEndCapture?: React.AnimationEventHandler<any>;
    onAnimationIteration?: React.AnimationEventHandler<any>;
    onAnimationIterationCapture?: React.AnimationEventHandler<any>;
    onTransitionEnd?: React.TransitionEventHandler<any>;
    onTransitionEndCapture?: React.TransitionEventHandler<any>;
}, Element>;
export declare const toMarkdown: (message: string, options?: DOMPurify.Config, inline?: boolean) => JSX.Element;
