import React from 'react';
import { propTypes as BalloonType } from '../balloon';
import { propsType as BalloonInconType } from '../balloon/balloonIcon';
interface propsType {
    /** 一行展示几列  */
    colsPerRow?: string | number;
    /** 按钮的点击事件 */
    onClick?: Function;
    /** 统一 onChange事件 */
    onChange?: Function;
    /** 编辑的完成事件 */
    finishEditFunc?: Function;
    /** 国际化文案 */
    locale?: {
        hide?: string;
        copy?: string;
        show?: string;
        edit?: string;
        finish?: string;
        copySuccess?: string;
    };
    /** 是否显示title后的冒号 */
    needTitleColon?: boolean;
    /** 固定title宽度，超出显示省略号 */
    titleMinWidth?: number;
    /** 能否编辑 */
    editable?: boolean;
    /** title */
    name: React.ReactNode;
    /** value */
    value: any;
    /** switch按钮的默认值 */
    switchDefault?: boolean;
    /** 是否显示全部文本 */
    showAll?: boolean;
    /** icon气泡提示 */
    tips?: string | BalloonInconType;
    /** 自定义 */
    custom?: any;
    /** 是否有拷贝功能 */
    copyable?: boolean;
    /** 是否有密码显示功能 */
    password?: boolean;
    /** 文本内容最大显示行数 */
    maxLine?: number;
    /** 按钮功能 */
    buttons?: {
        value?: React.ReactNode;
        onClick: Function;
    }[];
    /** 文本内容超出后气泡的props*/
    overBalloonProps?: BalloonType;
}
interface stateType {
    password: boolean;
    editor: boolean;
    editState: "error" | "loading" | "success" | undefined;
    switchState: boolean;
    editContent: any;
    switchValue: boolean | undefined;
}
interface defaultType {
    password: boolean;
    copyable: boolean;
    editable: boolean;
    custom: null;
    showAll: boolean;
    needTitleColon: boolean;
    titleMinWidth: string;
    locale?: {
        hide?: string;
        copy?: string;
        show?: string;
        edit?: string;
        finish?: string;
        copySuccess?: string;
    };
}
declare class Item extends React.Component<propsType, stateType> {
    static defaultProps: defaultType;
    constructor(props: any);
    togglePassword: () => void;
    copy: (copyable: any, value: any) => void;
    finishEdit: (name: any) => void;
    switchChange: (value: any, name: any) => void;
    getDisplayValue: (value: any, password: any, maxLine: any, overBalloonProps: any) => any;
    renderTips: (tips: any) => JSX.Element | null;
    render(): JSX.Element;
}
export default Item;
