import { ReactNode } from 'react';
import { FieldType } from '../data-set/enum';
import formatCurrency from '../formatter/formatCurrency';
import formatNumber from '../formatter/formatNumber';
import { FormatNumberFuncOptions } from '../number-field/NumberField';
import Validator from '../validator/Validator';
import ValidationResult from '../validator/ValidationResult';
import DataSet from '../data-set/DataSet';
import Record from '../data-set/Record';
import Field, { HighlightProps } from '../data-set/Field';
import { Renderer, RenderProps } from './FormField';
import { Tooltip } from '../core/enum';
export declare function toRangeValue(value: any, range?: boolean | [string, string]): [any, any];
export declare function fromRangeValue(value: any[], range?: boolean | [string, string]): any;
export declare function toMultipleValue(value: any, range?: boolean | [string, string]): any[];
export declare function getDateFormatByFieldType(type: FieldType): string;
export declare function getDateFormatByField(field?: Field, type?: FieldType): string;
export declare function transformHighlightProps(highlight: true | ReactNode | HighlightProps, props: HighlightProps): HighlightProps;
export declare function getCurrencyFormatter(): typeof formatCurrency;
export declare function getNumberFormatter(): typeof formatNumber;
export declare function getCurrencyFormatOptions(getProp: (name: any) => any, controlLang?: string): FormatNumberFuncOptions;
export declare function getNumberFormatOptions(getProp: (name: any) => any, getValue?: () => number | undefined, value?: number, controlLang?: string): FormatNumberFuncOptions;
export declare function processFieldValue(value: any, field: Field | undefined, options: {
    getProp(name: string): any;
    getValue?(): any;
    lang?: string;
}, showValueIfNotFound?: boolean): any;
export declare function processValue(value: any, format: any): any;
export declare function isFieldValueEmpty(value: any, range?: boolean | [string, string], multiple?: boolean, valueField?: string, textField?: string): boolean;
export declare type MultipleRenderOption = {
    range?: boolean | [string, string] | undefined;
    maxTagCount?: number | undefined;
    maxTagPlaceholder?: ReactNode | ((omittedValues: any[]) => ReactNode);
    prefixCls?: string | undefined;
    disabled?: boolean | undefined;
    readOnly?: boolean | undefined;
    validator?: Validator | undefined;
    isMultipleBlockDisabled?(v: any): boolean;
    processRenderer(v: any, repeat?: number): ReactNode;
    renderValidationResult(result: ValidationResult): ReactNode;
    handleMutipleValueRemove?(e: any, value: any, index: number): void;
    isValidationMessageHidden(message?: ReactNode): boolean | undefined;
    showValidationMessage(e: any, message?: ReactNode): void;
    getKey?(v: any): string;
};
export declare type RangeRenderOption = {
    repeat?: number | undefined;
    processRenderer(v: any, repeat?: number): ReactNode;
};
export declare type MultiLineRenderOption = {
    prefixCls?: string | undefined;
    field: Field;
    record?: Record;
    dataSet?: DataSet;
    renderer?: Renderer;
    name?: string;
    tooltip?: Tooltip;
    labelTooltip?: Tooltip;
    renderValidationResult(result: ValidationResult): ReactNode;
    isValidationMessageHidden(message?: ReactNode): boolean | undefined;
    processValue(value: any): ReactNode;
};
export declare function renderRangeValue(value: any, option: RangeRenderOption): JSX.Element | undefined;
export declare function getValueKey(v: any): any;
export declare function renderMultipleValues(value: any, option: MultipleRenderOption): {
    tags: ReactNode;
    multipleValidateMessageLength: number;
};
export declare function renderMultiLine(options: MultiLineRenderOption): {
    lines?: ReactNode;
    multipleValidateMessageLength: number;
};
export declare function renderValidationMessage(validationMessage: ReactNode, showIcon?: boolean): ReactNode;
export declare function defaultRenderer(renderOption: RenderProps): {} | null | undefined;
export declare function showValidationMessage(e: any, message?: ReactNode): void;
