/// <reference types="react" />
declare type Value = {
    html: string;
    text: string;
};
declare type BuiltInControls = 'emoji' | 'tag' | 'at';
export declare type User = {
    id: number | string;
    name: string;
    other: any;
};
export interface CommentInputProps extends Omit<CommentEditorProps, 'setEditorFn'> {
    controls?: (BuiltInControls | React.FC<any> | React.ComponentClass<any, any>)[];
    avatar?: React.ReactNode;
    disable?: boolean;
    maxLength?: number;
    anonymity?: boolean;
    showAnonymity?: boolean;
    okBtnText?: string;
    renderAction?: (params: {
        textLength: number;
        html: string;
    }) => React.ReactNode;
    getInsideUtils?: (utils: CommentUtilsProps) => void;
    onSubmit?: (value: {
        content: string;
        tagList: string[];
        notifiedPersonList: any[];
        anonymity: boolean;
        [key: string]: any;
    }) => Promise<any> | void;
}
export interface CommentEditorProps {
    value?: string;
    placeholder?: string;
    autoFocus?: boolean;
    onlyPasteText?: boolean;
    onInput?: (value: Value) => void;
    onKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;
    setEditorFn: (obj: CommentUtilsProps) => void;
}
export interface CommentUtilsProps {
    insertHtml: (html: string, options?: {
        className?: string;
        contentEditable?: boolean;
    }) => void;
    cleanContent: () => void;
}
export {};
