import { ExtractPropTypes, PropType, DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
import { CustomSlotsType, VueNode } from '../../_util/type';
export type SegmentedValue = string | number;
export type segmentedSize = 'large' | 'small';
export interface SegmentedBaseOption {
    value: string | number;
    disabled?: boolean;
    payload?: any;
    /**
     * html `title` property for label
     */
    title?: string;
    className?: string;
}
export interface SegmentedOption extends SegmentedBaseOption {
    label?: VueNode | ((option: SegmentedBaseOption) => VueNode);
}
export declare const segmentedProps: () => {
    prefixCls: StringConstructor;
    options: {
        type: PropType<(string | number | SegmentedOption)[]>;
        default: (string | number | SegmentedOption)[];
    };
    block: {
        type: BooleanConstructor;
        default: boolean;
    };
    disabled: {
        type: BooleanConstructor;
        default: boolean;
    };
    size: {
        type: PropType<segmentedSize>;
        default: segmentedSize;
    };
    value: {
        required: boolean;
        type: PropType<SegmentedValue>;
        default: SegmentedValue;
    };
    motionName: StringConstructor;
    onChange: {
        type: PropType<(val: SegmentedValue) => void>;
        default: (val: SegmentedValue) => void;
    };
    'onUpdate:value': {
        type: PropType<(val: SegmentedValue) => void>;
        default: (val: SegmentedValue) => void;
    };
};
export type SegmentedProps = Partial<ExtractPropTypes<ReturnType<typeof segmentedProps>>>;
declare const _default: DefineComponent<ExtractPropTypes<{
    prefixCls: StringConstructor;
    options: {
        type: PropType<(string | number | SegmentedOption)[]>;
        default: (string | number | SegmentedOption)[];
    };
    block: {
        type: BooleanConstructor;
        default: boolean;
    };
    disabled: {
        type: BooleanConstructor;
        default: boolean;
    };
    size: {
        type: PropType<segmentedSize>;
        default: segmentedSize;
    };
    value: {
        required: boolean;
        type: PropType<SegmentedValue>;
        default: SegmentedValue;
    };
    motionName: StringConstructor;
    onChange: {
        type: PropType<(val: SegmentedValue) => void>;
        default: (val: SegmentedValue) => void;
    };
    'onUpdate:value': {
        type: PropType<(val: SegmentedValue) => void>;
        default: (val: SegmentedValue) => void;
    };
}>, () => VueNode, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes<{
    prefixCls: StringConstructor;
    options: {
        type: PropType<(string | number | SegmentedOption)[]>;
        default: (string | number | SegmentedOption)[];
    };
    block: {
        type: BooleanConstructor;
        default: boolean;
    };
    disabled: {
        type: BooleanConstructor;
        default: boolean;
    };
    size: {
        type: PropType<segmentedSize>;
        default: segmentedSize;
    };
    value: {
        required: boolean;
        type: PropType<SegmentedValue>;
        default: SegmentedValue;
    };
    motionName: StringConstructor;
    onChange: {
        type: PropType<(val: SegmentedValue) => void>;
        default: (val: SegmentedValue) => void;
    };
    'onUpdate:value': {
        type: PropType<(val: SegmentedValue) => void>;
        default: (val: SegmentedValue) => void;
    };
}>> & Readonly<{}>, {
    size: segmentedSize;
    value: SegmentedValue;
    block: boolean;
    disabled: boolean;
    onChange: (val: SegmentedValue) => void;
    'onUpdate:value': (val: SegmentedValue) => void;
    options: (string | number | SegmentedOption)[];
}, CustomSlotsType<{
    label: SegmentedBaseOption;
}>, {}, {}, string, ComponentProvideOptions, true, {}, any>;
export default _default;
