interface CatalogContext {
/**
* The set of all assigned catalogs for the current site. This array of catalogs
* should be resolved AFTER the site is resolved and should always reflect the
* assigned catalogs for the currently active site.
*
* In global sites, this means that upon using the site selector, we would need
* to clear and refetch the set of assigned catalogs to reflect the chosen
* site's assigned catalogs.
*
* @type {Array}
*/
assignedCatalogs: [],
/**
* The ID of the currently chosen catalog. This is included within the
* "X-Context-Request" along with other tracking information when we make
* http requests during admin operations.
*
* @type {String}
*/
currentCatalogId: null,
/**
* The default locale for the current catalog selection. This is used to understand
* what the default locale is for the residents of the current catalog.
*/
currentCatalogLocale: undefined,
/**
* The primary method used for hydrating assigned catalogs.
*/
hydrateAssignedCatalogs: () => Promise<void>;
/**
* The primary method used by the catalog selector (or other components) for
* setting the current catalog.
*/
setCurrentCatalogById: (catalogId: string) => void;
}