import { SelectProps } from 'antd';
import { CSSProperties } from '../../../../node_modules/.pnpm/react@19.1.1/node_modules/react';
import { companyOptionalFields } from './constants';
export type CompanyOptionalFields = (typeof companyOptionalFields)[number];
export type SelectOption = {
    label: string | number;
    value: string | number;
};
export type SelectOptionComponentProps = {
    option: SelectOption;
    isSelected: boolean;
    handleSelect: (value: SelectOption["value"] | null) => void;
};
export type CompanySelectOptionProps = SelectOptionComponentProps & {
    fullOption: TCompanyType;
    optionalFields?: CompanyOptionalFields[];
};
export type UseCompanySelectProps<TCompany extends TCompanyType> = {
    onChange: CompanySelectProps<TCompany>["onChange"];
    searchValue?: string;
    data: CompanySelectProps<TCompany>["data"];
};
export type TCompanyType = {
    [key: string]: unknown;
    id: string;
    inn: string;
    fullName: string;
    opfShort: string;
    address: string | null | Address;
    okvedText: string | null;
    okved: string | null;
    capitalValue: string | null;
    managerFIO: string | null;
    status: string | null;
    rating?: {
        pgsRating: string;
        expertRating: string;
        insideRating: string;
        pressRelease: string;
        potential: string;
        top: string;
        data: CompanyRatingData | null;
        createdAt: Date;
    } | null;
    recommendations?: {
        total: number;
    }[] | null;
};
export type Address = {
    value: string;
    unrestricted_value: string;
    data: unknown;
};
export type QueryResponseCompany<TCompany extends {
    id: string;
    inn?: string;
}> = {
    items: TCompany[];
    nextCursor?: number | null;
    total?: number;
};
export type QueryParamsCompany = {
    q: string;
    pageParam?: number;
};
export type InfiniteData<T> = {
    pages: Array<T>;
    pageParams: Array<unknown>;
};
export type CompanySelectProps<TCompany extends {
    id: string;
    fio?: string;
}> = SelectProps & {
    data: InfiniteData<{
        items: TCompany[];
    }>;
    style?: CSSProperties | undefined;
    subTitle?: string;
    isLoading?: boolean;
};
export type CompanyGroupWithCompanies = {
    id: string;
    name: string;
    companies: CompanyWithRating[];
};
export type CompanyWithRating = TCompanyType & {
    rating: {
        pgsRating: string | null;
        expertRating: string | null;
        insideRating: string | null;
        pressRelease: string | null;
        potential: string | null;
        top: string | null;
        data: CompanyRatingData | null;
        createdAt: Date;
    };
};
export type CompanyRatingData = {
    source: "pgs";
    rating3Month: RatingLong;
    rating12Month: RatingLong;
} | {
    source: "expert_ra";
    change?: string;
    press_release?: string;
} | null;
export type RatingLong = "Other" | "Diamond" | "Platinum" | "Gold" | "Silver";
export type RatingShort = "D" | "D-" | "P" | "P+" | "P-" | "G" | "G+" | "G-" | "S" | "S-" | "S+" | "N" | "N+";
//# sourceMappingURL=types.d.ts.map