/// <reference types="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?: IDOMPurifyConfig;
}
/**
 * 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?: (event: React.ClipboardEvent<any>) => void;
    onCopyCapture?: (event: React.ClipboardEvent<any>) => void;
    onCut?: (event: React.ClipboardEvent<any>) => void;
    onCutCapture?: (event: React.ClipboardEvent<any>) => void;
    onPaste?: (event: React.ClipboardEvent<any>) => void;
    onPasteCapture?: (event: React.ClipboardEvent<any>) => void;
    onCompositionEnd?: (event: React.CompositionEvent<any>) => void;
    onCompositionEndCapture?: (event: React.CompositionEvent<any>) => void;
    onCompositionStart?: (event: React.CompositionEvent<any>) => void;
    onCompositionStartCapture?: (event: React.CompositionEvent<any>) => void;
    onCompositionUpdate?: (event: React.CompositionEvent<any>) => void;
    onCompositionUpdateCapture?: (event: React.CompositionEvent<any>) => void;
    onFocus?: (event: React.FocusEvent<any>) => void;
    onFocusCapture?: (event: React.FocusEvent<any>) => void;
    onBlur?: (event: React.FocusEvent<any>) => void;
    onBlurCapture?: (event: React.FocusEvent<any>) => void;
    onChange?: (event: React.FormEvent<any>) => void;
    onChangeCapture?: (event: React.FormEvent<any>) => void;
    onBeforeInput?: (event: React.FormEvent<any>) => void;
    onBeforeInputCapture?: (event: React.FormEvent<any>) => void;
    onInput?: (event: React.FormEvent<any>) => void;
    onInputCapture?: (event: React.FormEvent<any>) => void;
    onReset?: (event: React.FormEvent<any>) => void;
    onResetCapture?: (event: React.FormEvent<any>) => void;
    onSubmit?: (event: React.FormEvent<any>) => void;
    onSubmitCapture?: (event: React.FormEvent<any>) => void;
    onInvalid?: (event: React.FormEvent<any>) => void;
    onInvalidCapture?: (event: React.FormEvent<any>) => void;
    onLoad?: (event: React.SyntheticEvent<any, Event>) => void;
    onLoadCapture?: (event: React.SyntheticEvent<any, Event>) => void;
    onError?: (event: React.SyntheticEvent<any, Event>) => void;
    onErrorCapture?: (event: React.SyntheticEvent<any, Event>) => void;
    onKeyDown?: (event: React.KeyboardEvent<any>) => void;
    onKeyDownCapture?: (event: React.KeyboardEvent<any>) => void;
    onKeyPress?: (event: React.KeyboardEvent<any>) => void;
    onKeyPressCapture?: (event: React.KeyboardEvent<any>) => void;
    onKeyUp?: (event: React.KeyboardEvent<any>) => void;
    onKeyUpCapture?: (event: React.KeyboardEvent<any>) => void;
    onAbort?: (event: React.SyntheticEvent<any, Event>) => void;
    onAbortCapture?: (event: React.SyntheticEvent<any, Event>) => void;
    onCanPlay?: (event: React.SyntheticEvent<any, Event>) => void;
    onCanPlayCapture?: (event: React.SyntheticEvent<any, Event>) => void;
    onCanPlayThrough?: (event: React.SyntheticEvent<any, Event>) => void;
    onCanPlayThroughCapture?: (event: React.SyntheticEvent<any, Event>) => void;
    onDurationChange?: (event: React.SyntheticEvent<any, Event>) => void;
    onDurationChangeCapture?: (event: React.SyntheticEvent<any, Event>) => void;
    onEmptied?: (event: React.SyntheticEvent<any, Event>) => void;
    onEmptiedCapture?: (event: React.SyntheticEvent<any, Event>) => void;
    onEncrypted?: (event: React.SyntheticEvent<any, Event>) => void;
    onEncryptedCapture?: (event: React.SyntheticEvent<any, Event>) => void;
    onEnded?: (event: React.SyntheticEvent<any, Event>) => void;
    onEndedCapture?: (event: React.SyntheticEvent<any, Event>) => void;
    onLoadedData?: (event: React.SyntheticEvent<any, Event>) => void;
    onLoadedDataCapture?: (event: React.SyntheticEvent<any, Event>) => void;
    onLoadedMetadata?: (event: React.SyntheticEvent<any, Event>) => void;
    onLoadedMetadataCapture?: (event: React.SyntheticEvent<any, Event>) => void;
    onLoadStart?: (event: React.SyntheticEvent<any, Event>) => void;
    onLoadStartCapture?: (event: React.SyntheticEvent<any, Event>) => void;
    onPause?: (event: React.SyntheticEvent<any, Event>) => void;
    onPauseCapture?: (event: React.SyntheticEvent<any, Event>) => void;
    onPlay?: (event: React.SyntheticEvent<any, Event>) => void;
    onPlayCapture?: (event: React.SyntheticEvent<any, Event>) => void;
    onPlaying?: (event: React.SyntheticEvent<any, Event>) => void;
    onPlayingCapture?: (event: React.SyntheticEvent<any, Event>) => void;
    onProgress?: (event: React.SyntheticEvent<any, Event>) => void;
    onProgressCapture?: (event: React.SyntheticEvent<any, Event>) => void;
    onRateChange?: (event: React.SyntheticEvent<any, Event>) => void;
    onRateChangeCapture?: (event: React.SyntheticEvent<any, Event>) => void;
    onSeeked?: (event: React.SyntheticEvent<any, Event>) => void;
    onSeekedCapture?: (event: React.SyntheticEvent<any, Event>) => void;
    onSeeking?: (event: React.SyntheticEvent<any, Event>) => void;
    onSeekingCapture?: (event: React.SyntheticEvent<any, Event>) => void;
    onStalled?: (event: React.SyntheticEvent<any, Event>) => void;
    onStalledCapture?: (event: React.SyntheticEvent<any, Event>) => void;
    onSuspend?: (event: React.SyntheticEvent<any, Event>) => void;
    onSuspendCapture?: (event: React.SyntheticEvent<any, Event>) => void;
    onTimeUpdate?: (event: React.SyntheticEvent<any, Event>) => void;
    onTimeUpdateCapture?: (event: React.SyntheticEvent<any, Event>) => void;
    onVolumeChange?: (event: React.SyntheticEvent<any, Event>) => void;
    onVolumeChangeCapture?: (event: React.SyntheticEvent<any, Event>) => void;
    onWaiting?: (event: React.SyntheticEvent<any, Event>) => void;
    onWaitingCapture?: (event: React.SyntheticEvent<any, Event>) => void;
    onAuxClick?: (event: React.MouseEvent<any, MouseEvent>) => void;
    onAuxClickCapture?: (event: React.MouseEvent<any, MouseEvent>) => void;
    onClick?: (event: React.MouseEvent<any, MouseEvent>) => void;
    onClickCapture?: (event: React.MouseEvent<any, MouseEvent>) => void;
    onContextMenu?: (event: React.MouseEvent<any, MouseEvent>) => void;
    onContextMenuCapture?: (event: React.MouseEvent<any, MouseEvent>) => void;
    onDoubleClick?: (event: React.MouseEvent<any, MouseEvent>) => void;
    onDoubleClickCapture?: (event: React.MouseEvent<any, MouseEvent>) => void;
    onDrag?: (event: React.DragEvent<any>) => void;
    onDragCapture?: (event: React.DragEvent<any>) => void;
    onDragEnd?: (event: React.DragEvent<any>) => void;
    onDragEndCapture?: (event: React.DragEvent<any>) => void;
    onDragEnter?: (event: React.DragEvent<any>) => void;
    onDragEnterCapture?: (event: React.DragEvent<any>) => void;
    onDragExit?: (event: React.DragEvent<any>) => void;
    onDragExitCapture?: (event: React.DragEvent<any>) => void;
    onDragLeave?: (event: React.DragEvent<any>) => void;
    onDragLeaveCapture?: (event: React.DragEvent<any>) => void;
    onDragOver?: (event: React.DragEvent<any>) => void;
    onDragOverCapture?: (event: React.DragEvent<any>) => void;
    onDragStart?: (event: React.DragEvent<any>) => void;
    onDragStartCapture?: (event: React.DragEvent<any>) => void;
    onDrop?: (event: React.DragEvent<any>) => void;
    onDropCapture?: (event: React.DragEvent<any>) => void;
    onMouseDown?: (event: React.MouseEvent<any, MouseEvent>) => void;
    onMouseDownCapture?: (event: React.MouseEvent<any, MouseEvent>) => void;
    onMouseEnter?: (event: React.MouseEvent<any, MouseEvent>) => void;
    onMouseLeave?: (event: React.MouseEvent<any, MouseEvent>) => void;
    onMouseMove?: (event: React.MouseEvent<any, MouseEvent>) => void;
    onMouseMoveCapture?: (event: React.MouseEvent<any, MouseEvent>) => void;
    onMouseOut?: (event: React.MouseEvent<any, MouseEvent>) => void;
    onMouseOutCapture?: (event: React.MouseEvent<any, MouseEvent>) => void;
    onMouseOver?: (event: React.MouseEvent<any, MouseEvent>) => void;
    onMouseOverCapture?: (event: React.MouseEvent<any, MouseEvent>) => void;
    onMouseUp?: (event: React.MouseEvent<any, MouseEvent>) => void;
    onMouseUpCapture?: (event: React.MouseEvent<any, MouseEvent>) => void;
    onSelect?: (event: React.SyntheticEvent<any, Event>) => void;
    onSelectCapture?: (event: React.SyntheticEvent<any, Event>) => void;
    onTouchCancel?: (event: React.TouchEvent<any>) => void;
    onTouchCancelCapture?: (event: React.TouchEvent<any>) => void;
    onTouchEnd?: (event: React.TouchEvent<any>) => void;
    onTouchEndCapture?: (event: React.TouchEvent<any>) => void;
    onTouchMove?: (event: React.TouchEvent<any>) => void;
    onTouchMoveCapture?: (event: React.TouchEvent<any>) => void;
    onTouchStart?: (event: React.TouchEvent<any>) => void;
    onTouchStartCapture?: (event: React.TouchEvent<any>) => void;
    onPointerDown?: (event: React.PointerEvent<any>) => void;
    onPointerDownCapture?: (event: React.PointerEvent<any>) => void;
    onPointerMove?: (event: React.PointerEvent<any>) => void;
    onPointerMoveCapture?: (event: React.PointerEvent<any>) => void;
    onPointerUp?: (event: React.PointerEvent<any>) => void;
    onPointerUpCapture?: (event: React.PointerEvent<any>) => void;
    onPointerCancel?: (event: React.PointerEvent<any>) => void;
    onPointerCancelCapture?: (event: React.PointerEvent<any>) => void;
    onPointerEnter?: (event: React.PointerEvent<any>) => void;
    onPointerEnterCapture?: (event: React.PointerEvent<any>) => void;
    onPointerLeave?: (event: React.PointerEvent<any>) => void;
    onPointerLeaveCapture?: (event: React.PointerEvent<any>) => void;
    onPointerOver?: (event: React.PointerEvent<any>) => void;
    onPointerOverCapture?: (event: React.PointerEvent<any>) => void;
    onPointerOut?: (event: React.PointerEvent<any>) => void;
    onPointerOutCapture?: (event: React.PointerEvent<any>) => void;
    onGotPointerCapture?: (event: React.PointerEvent<any>) => void;
    onGotPointerCaptureCapture?: (event: React.PointerEvent<any>) => void;
    onLostPointerCapture?: (event: React.PointerEvent<any>) => void;
    onLostPointerCaptureCapture?: (event: React.PointerEvent<any>) => void;
    onScroll?: (event: React.UIEvent<any>) => void;
    onScrollCapture?: (event: React.UIEvent<any>) => void;
    onWheel?: (event: React.WheelEvent<any>) => void;
    onWheelCapture?: (event: React.WheelEvent<any>) => void;
    onAnimationStart?: (event: React.AnimationEvent<any>) => void;
    onAnimationStartCapture?: (event: React.AnimationEvent<any>) => void;
    onAnimationEnd?: (event: React.AnimationEvent<any>) => void;
    onAnimationEndCapture?: (event: React.AnimationEvent<any>) => void;
    onAnimationIteration?: (event: React.AnimationEvent<any>) => void;
    onAnimationIterationCapture?: (event: React.AnimationEvent<any>) => void;
    onTransitionEnd?: (event: React.TransitionEvent<any>) => void;
    onTransitionEndCapture?: (event: React.TransitionEvent<any>) => void;
}, Element>;
export declare const toMarkdown: (message: string, options?: IDOMPurifyConfig, inline?: boolean) => JSX.Element;
