import type { TBaseActionParams, TLimitSinceParams } from '../params'; import type { TComment, TPost, TReaction } from './post'; export interface TBaseFetchPersonParams extends TBaseActionParams { personUrl: string; retrieveExperience?: boolean; retrieveEducation?: boolean; retrieveSkills?: boolean; retrieveLanguages?: boolean; retrievePosts?: boolean; retrieveComments?: boolean; retrieveReactions?: boolean; } export interface TBaseFetchPersonParamsWide extends TBaseFetchPersonParams { retrieveExperience: true; retrieveEducation: true; retrieveSkills: true; retrieveLanguages: true; retrievePosts: true; retrieveComments: true; retrieveReactions: true; } export type TFetchPersonParams = T & { postsRetrievalConfig?: T['retrievePosts'] extends true ? TLimitSinceParams | undefined : never; commentsRetrievalConfig?: T['retrieveComments'] extends true ? TLimitSinceParams | undefined : never; reactionsRetrievalConfig?: T['retrieveReactions'] extends true ? TLimitSinceParams | undefined : never; }; export interface TPerson { name: string; publicUrl: string; hashedUrl: string; headline: string; location: string; countryCode: string; position: string; companyName: string; companyHashedUrl: string; followersCount: number | null; about: string | null; experiences?: ReadonlyArray; education?: ReadonlyArray; skills?: ReadonlyArray; languages?: ReadonlyArray; posts?: ReadonlyArray; comments?: ReadonlyArray; reactions?: ReadonlyArray; } export type TFetchPersonResult = TPerson; export interface TPersonExperience { position: string; companyName: string; companyHashedUrl: string; employmentType: TEmploymentType; locationType: TLocationType; description: string; duration: number; startTime: string; endTime: string | null; location: string; } export declare const EMPLOYMENT_TYPE: { readonly fullTime: "fullTime"; readonly partTime: "partTime"; readonly selfEmployed: "selfEmployed"; readonly freelance: "freelance"; readonly contract: "contract"; readonly internship: "internship"; readonly apprenticeship: "apprenticeship"; readonly seasonal: "seasonal"; }; export type TEmploymentType = (typeof EMPLOYMENT_TYPE)[keyof typeof EMPLOYMENT_TYPE]; export declare const LOCATION_TYPE: { readonly onSite: "onSite"; readonly remote: "remote"; readonly hybrid: "hybrid"; }; export type TLocationType = (typeof LOCATION_TYPE)[keyof typeof LOCATION_TYPE]; export interface TPersonEducation { schoolName: string; schoolHashedUrl: string; details: string; } export interface TPersonSkill { name: string; } export interface TPersonLanguage { name: string; proficiency: TLanguageProficiency; } export declare const LANGUAGE_PROFICIENCY: { readonly elementary: "elementary"; readonly limitedWorking: "limitedWorking"; readonly professionalWorking: "professionalWorking"; readonly fullProfessional: "fullProfessional"; readonly nativeOrBilingual: "nativeOrBilingual"; }; export type TLanguageProficiency = (typeof LANGUAGE_PROFICIENCY)[keyof typeof LANGUAGE_PROFICIENCY]; export declare const YEARS_OF_EXPERIENCE: { readonly lessThanOne: "lessThanOne"; readonly oneToTwo: "oneToTwo"; readonly threeToFive: "threeToFive"; readonly sixToTen: "sixToTen"; readonly moreThanTen: "moreThanTen"; }; export type TYearsOfExperience = (typeof YEARS_OF_EXPERIENCE)[keyof typeof YEARS_OF_EXPERIENCE]; //# sourceMappingURL=person.d.ts.map