import { ProjectStatus } from '@tipp/biz-utils';

interface CoachingCustomerInfoProps {
    customer?: Customer;
    session?: Session;
    children?: React.ReactElement;
    badge?: React.ReactElement;
    onClickCopy: (value: string) => void;
}
interface Customer {
    username?: string;
    email?: string;
    gender?: string;
    birthdate?: Date;
    phone?: string;
    company?: string;
    team?: string;
    position?: string;
    level: string;
}
interface Session {
    state?: ProjectStatus;
    totalSession?: number;
    currentSession?: number;
    nextSessionDate?: Date;
    nextSessionType?: string;
    expiredAt?: Date;
}
interface DataListItems<T> {
    label: string;
    getValue: (original?: T) => string | undefined;
    copyable?: boolean;
    render?: (value?: string) => React.ReactNode;
}
declare const infoList: DataListItems<Customer>[];
declare const sessionList: DataListItems<Session>[];
declare const renderItem: <T extends object>(args: {
    info: DataListItems<T>;
    data?: T;
    onClickCopy: (value: string) => void;
}) => JSX.Element;
declare const renderDataListItem: <T extends object>(args: {
    info: DataListItems<T>;
    data?: T;
    onClickCopy: (value: string) => void;
}) => React.ReactElement;
declare function CopyButton(props: {
    value: string;
    onClickCopy: (value: string) => void;
}): JSX.Element;

export { type CoachingCustomerInfoProps, CopyButton, type Customer, type DataListItems, type Session, infoList, renderDataListItem, renderItem, sessionList };
