import { DatePickerProps } from 'antd/es/date-picker/interface';
import { TextAreaProps, InputProps } from 'antd/es/input';
import { InputNumberProps } from 'antd/es/input-number';
import { SelectProps } from 'antd/es/select';
import { CheckboxProps, CheckboxGroupProps } from 'antd/es/checkbox';
import { TreeSelectProps } from 'antd/es/tree-select';

export interface LinkData {
    text?: string;
    value: string;
}
export interface CommonProps {
    onEmitChange?: Function;
    emitTrigger?: string;
}
export interface ApolloInputProps extends InputProps, CommonProps {
    value: string | undefined;
}
export interface ApolloLinkProps extends CommonProps {
    value: LinkData[];
    onChange: Function;
    columnConfig: any;
}
export interface ApolloTextAreaProps extends TextAreaProps, CommonProps {
    value: string | undefined;
}
export interface ApolloSearchProps extends SelectProps, CommonProps {
    type: string;
    request: Function;
    isMultiple?: boolean;
    maxCount?: number;
}
export interface ApolloInputSearchProps extends SelectProps, CommonProps {
    type: string;
    request: Function;
}
export interface ApolloSelectProps extends SelectProps, CommonProps {
    isMultiple?: boolean;
    options?: any[];
}
export interface RateProps {
    value: number;
    allowClear?: boolean;
    allowHalf?: boolean;
    count?: number;
    onChange: any;
    disabled?: boolean;
}
export interface ApolloNumberProps extends InputNumberProps, CommonProps {
    value: number | undefined;
    floatRange?: number;
}
export interface ApolloDateProps extends DatePickerProps, CommonProps {}
export interface ApolloCheckboxProps extends CheckboxProps, CommonProps {
    label: string;
}
export interface ApolloCheckboxGroupProps extends CheckboxGroupProps, CommonProps {}
export interface ApolloTreeSelectProps extends CommonProps {
    isMultiple?: boolean;
    onChange: Function;
    value: any;
}
