import { PropType, DefineComponent, ExtractPropTypes, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
import { EventHandler } from '../_util/EventInterface';
import { AutoSizeType } from '../input/inputProps';
import { TypographyProps } from './Typography';
export type BaseType = 'secondary' | 'success' | 'warning' | 'danger';
export interface CopyConfig {
    text?: string;
    onCopy?: (event?: MouseEvent) => void;
    tooltip?: boolean;
}
export interface EditConfig {
    editing?: boolean;
    tooltip?: boolean;
    onStart?: () => void;
    onChange?: (value: string) => void;
    onCancel?: () => void;
    onEnd?: () => void;
    maxlength?: number;
    autoSize?: boolean | AutoSizeType;
    triggerType?: ('icon' | 'text')[];
}
export interface EllipsisConfig {
    rows?: number;
    expandable?: boolean;
    suffix?: string;
    symbol?: string;
    onExpand?: EventHandler;
    onEllipsis?: (ellipsis: boolean) => void;
    tooltip?: any;
}
export interface BlockProps extends TypographyProps {
    title?: string;
    editable?: boolean | EditConfig;
    copyable?: boolean | CopyConfig;
    type?: BaseType;
    disabled?: boolean;
    ellipsis?: boolean | EllipsisConfig;
    code?: boolean;
    mark?: boolean;
    underline?: boolean;
    delete?: boolean;
    strong?: boolean;
    keyboard?: boolean;
    content?: string;
}
interface InternalBlockProps extends BlockProps {
    component: string;
}
export declare const baseProps: () => {
    editable: {
        type: PropType<InternalBlockProps["editable"]>;
        default: InternalBlockProps["editable"];
    };
    copyable: {
        type: PropType<InternalBlockProps["copyable"]>;
        default: InternalBlockProps["copyable"];
    };
    prefixCls: StringConstructor;
    component: StringConstructor;
    type: PropType<BaseType>;
    disabled: {
        type: BooleanConstructor;
        default: undefined;
    };
    ellipsis: {
        type: PropType<InternalBlockProps["ellipsis"]>;
        default: InternalBlockProps["ellipsis"];
    };
    code: {
        type: BooleanConstructor;
        default: undefined;
    };
    mark: {
        type: BooleanConstructor;
        default: undefined;
    };
    underline: {
        type: BooleanConstructor;
        default: undefined;
    };
    delete: {
        type: BooleanConstructor;
        default: undefined;
    };
    strong: {
        type: BooleanConstructor;
        default: undefined;
    };
    keyboard: {
        type: BooleanConstructor;
        default: undefined;
    };
    content: StringConstructor;
    'onUpdate:content': PropType<(content: string) => void>;
};
declare const Base: DefineComponent<ExtractPropTypes<{
    editable: {
        type: PropType<InternalBlockProps["editable"]>;
        default: InternalBlockProps["editable"];
    };
    copyable: {
        type: PropType<InternalBlockProps["copyable"]>;
        default: InternalBlockProps["copyable"];
    };
    prefixCls: StringConstructor;
    component: StringConstructor;
    type: PropType<BaseType>;
    disabled: {
        type: BooleanConstructor;
        default: undefined;
    };
    ellipsis: {
        type: PropType<InternalBlockProps["ellipsis"]>;
        default: InternalBlockProps["ellipsis"];
    };
    code: {
        type: BooleanConstructor;
        default: undefined;
    };
    mark: {
        type: BooleanConstructor;
        default: undefined;
    };
    underline: {
        type: BooleanConstructor;
        default: undefined;
    };
    delete: {
        type: BooleanConstructor;
        default: undefined;
    };
    strong: {
        type: BooleanConstructor;
        default: undefined;
    };
    keyboard: {
        type: BooleanConstructor;
        default: undefined;
    };
    content: StringConstructor;
    'onUpdate:content': PropType<(content: string) => void>;
}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly< ExtractPropTypes<{
    editable: {
        type: PropType<InternalBlockProps["editable"]>;
        default: InternalBlockProps["editable"];
    };
    copyable: {
        type: PropType<InternalBlockProps["copyable"]>;
        default: InternalBlockProps["copyable"];
    };
    prefixCls: StringConstructor;
    component: StringConstructor;
    type: PropType<BaseType>;
    disabled: {
        type: BooleanConstructor;
        default: undefined;
    };
    ellipsis: {
        type: PropType<InternalBlockProps["ellipsis"]>;
        default: InternalBlockProps["ellipsis"];
    };
    code: {
        type: BooleanConstructor;
        default: undefined;
    };
    mark: {
        type: BooleanConstructor;
        default: undefined;
    };
    underline: {
        type: BooleanConstructor;
        default: undefined;
    };
    delete: {
        type: BooleanConstructor;
        default: undefined;
    };
    strong: {
        type: BooleanConstructor;
        default: undefined;
    };
    keyboard: {
        type: BooleanConstructor;
        default: undefined;
    };
    content: StringConstructor;
    'onUpdate:content': PropType<(content: string) => void>;
}>> & Readonly<{}>, {
    mark: boolean;
    code: boolean;
    strong: boolean;
    delete: boolean;
    underline: boolean;
    ellipsis: boolean | EllipsisConfig | undefined;
    disabled: boolean;
    keyboard: boolean;
    editable: boolean | EditConfig | undefined;
    copyable: boolean | CopyConfig | undefined;
}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
export default Base;
