/* eslint-disable */
/**
 * This file was automatically generated by json-schema-to-typescript.
 * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
 * and run json-schema-to-typescript to regenerate this file.
 */

/**
 * Depict ID of the listing.
 */
export type ListingId = string;
/**
 * ID of the listing in the merchant PIM, CMS or similar.
 */
export type ExternalId = string | null;
export type CollectionType =
  | "long_tail_collection"
  | "campaign"
  | "category"
  | "smart_pick"
  | "style"
  | "brand"
  | "look";
/**
 * Show or hide this listing in navigation breadcrumbs.
 */
export type ShowInBreadcrumbs = boolean;
/**
 * Show or hide this listing in quicklinks.
 */
export type ShowInQuicklinks = boolean;
/**
 * List of image URLs for the listing.
 */
export type ImageUrls = string[];
export type Title = string;
export type Slug = string | null;
export type Type = "listing";
export type SuggestionsResultId = string;
/**
 * Ordered list of ancestors of the suggested listing, useful for navigation breadcrumbs. The first element is the root listing.
 */
export type Ancestors = ProductListing[];

export interface SearchSuggestionsResponseV3 {
  suggestions_request_id: string;
  /**
   * List of suggestions for search queries and product listings that should be shown to the user while they are typing.
   */
  suggestions: (QuerySuggestion | ListingSuggestion)[];
}
export interface QuerySuggestion {
  type?: "query";
  suggestions_result_id: string;
  /**
   * The suggested search query.
   */
  query: string;
}
export interface ListingSuggestion {
  listing_id: ListingId;
  external_id?: ExternalId;
  listing_type: CollectionType;
  show_in_breadcrumbs: ShowInBreadcrumbs;
  show_in_quicklinks: ShowInQuicklinks;
  image_urls: ImageUrls;
  title: Title;
  slug?: Slug;
  type?: Type;
  suggestions_result_id: SuggestionsResultId;
  ancestors: Ancestors;
}
/**
 * Represents a product listing, e.g. a category or a collection.
 */
export interface ProductListing {
  /**
   * Depict ID of the listing.
   */
  listing_id: string;
  /**
   * ID of the listing in the merchant PIM, CMS or similar.
   */
  external_id?: string;
  listing_type: CollectionType;
  /**
   * Show or hide this listing in navigation breadcrumbs.
   */
  show_in_breadcrumbs: boolean;
  /**
   * Show or hide this listing in quicklinks.
   */
  show_in_quicklinks: boolean;
  /**
   * List of image URLs for the listing.
   */
  image_urls: string[];
  title: string;
  slug?: string;
}
