import { ProductCPAHiringGoalUnit, ProductFilterRecommendations, ProductPriceCurrency, ProductSortBy, ProductTypeFilterBy } from "./enums"; import { ContractDetails } from "../contract/types"; import { StringifiedJSON } from "../common"; export type ProductRange = "hours" | "days" | "weeks" | "months"; export type ProductIndustry = { id: number | string; name: string; }; export type ProductLocationPartial = { id: number; canonical_name: string; }; export type ProductLogoUrl = { url: string; }; export type ProductLogoUrlWithSize = ProductLogoUrl & { size: string; }; export type ProductPrice = { amount: number; currency: ProductPriceCurrency; }; export type ProductDuration = { range: ProductRange; period: number; }; export type ProductSupportingContractsPartial = { id: number; name: string; url: string; type: string; mc_enabled: boolean; }; export type ProductAudienceGroup = "niche" | "generic"; export type ProductCPA = { hiring_goal: number; hiring_goal_unit: ProductCPAHiringGoalUnit; }; export type Product = { allow_orders: boolean; audience_group: ProductAudienceGroup; cross_postings: string[]; channel: ProductSupportingContractsPartial; bundle_products_ids?: string[]; description: string | null; title: string; duration: ProductDuration; homepage: string | null; industries: ProductIndustry[]; job_functions: ProductJobFunctionPartial[]; locations: ProductLocationPartial[]; mc_enabled: boolean; mc_only: boolean; product_id: string; ratecard_price: ProductPrice[]; vonq_price: ProductPrice[]; time_to_process: ProductDuration; time_to_setup: ProductDuration; is_recommended?: boolean; has_product_specs: boolean; product_specs: { validation_disabled: boolean; validation_optional: boolean; }; cpa: ProductCPA | null; } & ProductLogos & ProductType; export type ProductBoardType = "aggregator" | "job board" | "service" | "social media" | "publication" | "community" | "product_bundle"; export type ProductType = { type: ProductBoardType; }; export type ProductLogos = { logo_rectangle_url?: ProductLogoUrlWithSize[] | null; logo_square_url?: ProductLogoUrlWithSize[] | null; logo_url?: ProductLogoUrl[] | null; }; export type ProductJobFunctionPartial = { id: number; name: string; }; export type ProductJobFunction = { children?: ProductJobFunction[]; } & ProductJobFunctionPartial; export type ProductJobTitle = { id: number; name: string; job_function: ProductJobFunctionPartial | null; }; export type ProductLocationPlaceType = "world" | "continent" | "country" | "region" | "place" | "district"; export type ProductLocation = { bounding_box: any[]; place_type: ProductLocationPlaceType[]; fully_qualified_place_name: string; within?: ProductLocation; } & ProductLocationPartial; export type ProductOrderDeliveryTime = { days_to_process: number; days_to_setup: number; total_days: number; }; export type ProductFilterQueryParams = { productNameInput: string; locationsIdsSelected: number[]; jobTitlesIdsSelected: number[]; jobFunctionsIdsSelected: number[]; jobIndustriesIdsSelected: number[]; filterProductRecommendations: ProductFilterRecommendations; filterMyContractSupportedOnly: boolean; searchTextInput: string; searchSortBy: ProductSortBy; searchTypeFilterBy: ProductTypeFilterBy; }; export type ProductSearchFilters = { currency?: string; durationFrom?: string; durationTo?: string; exactLocationId?: string; excludeRecommended?: boolean; includeLocationId?: string; industryId?: string; jobFunctionId?: string; jobTitleId?: string; mcEnabled?: boolean; name?: string; recommended?: boolean; sortBy?: ProductSortBy; }; export type ProductWithSupportForContractsFilters = { search?: string; }; export type ProductSupportingContractsComplete = ProductLogos & ProductSupportingContractsPartial & ContractDetails; export type ProductUserProvidedFilters = Omit; export type ProductProductsSupportingContractsPayload = [ string | number ]; export type ProductProductsSupportingContractsMapState = { isLoading: boolean; data: ProductSupportingContractsComplete | null; lastAccessedDate: string; }; export type ProductProductsSupportingContractsMap = Map, ProductProductsSupportingContractsMapState>; export type ProductSuggestionStatus = "queued" | "started" | "completed" | "errored"; export type ProductSearchFiltersSuggestionCreateRequest = { context: { structured: Record; unstructured: string; }; }; export type ProductSearchFiltersSuggestionCreateRequestResponse = { smartfill_task_id: string; }; export type ProductSearchFiltersSuggestionsPrefillData = { job_title: ProductJobTitle; job_function: ProductJobFunctionPartial; location: ProductLocation; industry: ProductIndustry; }; export type ProductSearchFiltersSuggestionsGetRequestResponse = { id: string; status: ProductSuggestionStatus; created_at: string; updated_at: string; prefill_data: Partial; }; export type ProductSearchFilterIDs = { jobTitlesIdsSelected: number[]; jobFunctionsIdsSelected: number[]; jobIndustriesIdsSelected: number[]; jobRegionsIdsSelected: number[]; }; //# sourceMappingURL=types.d.ts.map