import React from 'react';
import type { ClientCardProps } from '../../../clientCard/types';
import type { BaseResponsiveProps } from '../../../../responsive';
export interface ClientSelectorCustomer {
    id?: string | number | null;
    customer_id?: string | number | null;
    name?: string;
    display_name?: string;
    first_name?: string;
    last_name?: string;
    nickname?: string;
    contacts_info?: Record<string, any> | null;
    [key: string]: any;
}
export interface ClientSelectorPagination {
    page: number;
    pageSize: number;
    total: number;
}
export interface ClientSelectorSearchOptions {
    showLoading?: boolean;
}
export interface ClientSelectorRef {
    handleSetClient: (record: ClientSelectorCustomer | null, options?: ClientSelectorSetClientOptions) => Promise<void>;
}
interface ClientSelectorSetClientOptions {
    sameClientTip?: string;
}
export interface ClientSelectorProps extends BaseResponsiveProps {
    className?: string;
    value?: ClientSelectorCustomer | null;
    list?: ClientSelectorCustomer[];
    loading?: boolean;
    loadingMore?: boolean;
    resultLoading?: boolean;
    hasMore?: boolean;
    pagination?: ClientSelectorPagination;
    isShowAvatar?: boolean;
    readOnly?: boolean;
    clientCardProps?: Partial<ClientCardProps>;
    beforeSwitchModalOpen?: () => void | boolean | Promise<undefined | boolean>;
    onSearch: (keyword: string, options?: ClientSelectorSearchOptions) => Promise<any> | any;
    onLoadMore?: () => Promise<any> | any;
    onChangePage?: (page: number, pageSize?: number) => Promise<any> | any;
    onSelect: (customer: ClientSelectorCustomer | null, originCustomer?: ClientSelectorCustomer | null) => Promise<any> | any;
    onAddToFirst?: (customer: ClientSelectorCustomer) => void;
    onClientChange?: (customer: ClientSelectorCustomer | null, originCustomer?: ClientSelectorCustomer | null) => void;
    resolveContactsInfo?: (customer: ClientSelectorCustomer | null) => Record<string, any> | null;
    onContactsInfoChange?: (contactsInfo: Record<string, any> | null) => void;
    onOpenCustomerDetail?: (customer: ClientSelectorCustomer, onSuccess: (detail: any) => void) => void;
}
export declare const ClientSelector: React.ForwardRefExoticComponent<ClientSelectorProps & React.RefAttributes<ClientSelectorRef>>;
export {};
