import type { TypographyProps } from './Typography';
import type { AutoSizeType } from '../input/ResizableTextArea';
import type { EventHandler } from '../_util/EventInterface';
export declare type BaseType = 'secondary' | 'success' | 'warning' | 'danger';
export interface CopyConfig {
    text?: string;
    onCopy?: () => 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;
}
export interface EllipsisConfig {
    rows?: number;
    expandable?: boolean;
    suffix?: string;
    symbol?: string;
    onExpand?: EventHandler;
    onEllipsis?: (ellipsis: boolean) => void;
    tooltip?: boolean;
}
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;
}
declare const Base: import("vue").DefineComponent<InternalBlockProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<InternalBlockProps>, {}>;
export declare const baseProps: () => {
    editable: import("vue-types").VueTypeDef<boolean | {
        [key: string]: any;
    }>;
    copyable: import("vue-types").VueTypeDef<boolean | {
        [key: string]: any;
    }>;
    prefixCls: import("vue-types").VueTypeValidableDef<string> & {
        default: string;
    };
    component: import("vue-types").VueTypeValidableDef<string> & {
        default: string;
    };
    type: import("vue-types").VueTypeDef<string>;
    disabled: import("vue-types").VueTypeValidableDef<boolean>;
    ellipsis: import("vue-types").VueTypeDef<boolean | {
        [key: string]: any;
    }>;
    code: import("vue-types").VueTypeValidableDef<boolean>;
    mark: import("vue-types").VueTypeValidableDef<boolean>;
    underline: import("vue-types").VueTypeValidableDef<boolean>;
    delete: import("vue-types").VueTypeValidableDef<boolean>;
    strong: import("vue-types").VueTypeValidableDef<boolean>;
    keyboard: import("vue-types").VueTypeValidableDef<boolean>;
    content: import("vue-types").VueTypeValidableDef<string> & {
        default: string;
    };
};
export default Base;
