/* 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.
 */

/**
 * Unique identifier of the category.
 */
export type CategoryId = string;
/**
 * The title of the category
 */
export type Title = string;
/**
 * The full URL to the category page
 */
export type PageUrl = string | null;
/**
 * Optionally a unique query ID for the category
 */
export type QueryId = string | null;
/**
 * Optionally a unique URI for the category, for example men/shoes
 */
export type Uri = string | null;
export type ECategoryType = "TAG" | "CATEGORY" | "TENANT_CATEGORY" | "TENANT_SECONDARY_CATEGORY" | "CAMPAIGN" | "BRAND";
/**
 * type
 */
export type Type = "category";
export type SuggestionsResultId = string;

export interface SearchSuggestionsResponse {
  suggestions_request_id: string;
  /**
   * List of suggestions for search queries that should be shown to the user while they are typing.
   */
  suggestions: (QuerySuggestion | LegacyCategorySuggestion)[];
}
export interface QuerySuggestion {
  type?: "query";
  /**
   * Title for suggestion.
   */
  title: string;
  suggestions_result_id: string;
}
export interface LegacyCategorySuggestion {
  category_id: CategoryId;
  title: Title;
  page_url?: PageUrl;
  query_id?: QueryId;
  uri?: Uri;
  /**
   * The type of category, for example CAMPAIGN, TAG, or CATEGORY
   */
  category_type?: ECategoryType & string;
  type?: Type;
  suggestions_result_id: SuggestionsResultId;
  [k: string]: unknown;
}
