import { EntityType } from "./types/IHubCatalog";
export declare const WELL_KNOWN_ITEM_FACET_TYPES: readonly ["within", "organization", "hub-content", "type", "categories", "modified", "created", "location", "tags", "access", "contentstatus"];
export declare const WELL_KNOWN_GROUP_FACET_TYPES: readonly ["group-within", "group-organization", "membership", "modified", "group-created", "group-type", "group-access"];
export declare const WELL_KNOWN_EVENT_FACET_TYPES: readonly ["event-from", "event-access", "event-date"];
export declare const WELL_KNOWN_POST_FACET_TYPES: readonly ["location", "modified", "post-groups", "post-status"];
/**
 * A list of facet types that we can build IFacets for.
 * The default facet definitions are item based, for
 * entities that have different facet definations for
 * the same facet types, we prefix those facet types with
 * the entity type to differentiate them, e.g. "group-type".
 *
 * NOTE: When adding a new facet for an entity type, first
 * check if the facet exists in the FacetTypes and if the
 * facet definition is the same as the default one. If so,
 * simply add the facet key to the static array of well
 * known facets for that entity type (above). Otherwise,
 * add the new facet type to the relevant static array
 * and a new function to create the facet.
 *
 * WARNING: Do not import this combined list of facet types unless absolutely necessary.
 * Whenever possible, use the individual arrays of well-known facet types for each entity type
 * (e.g. WELL_KNOWN_ITEM_FACET_TYPES) to prevent facet ordering conflicts between entity types.
 */
export declare const WELL_KNOWN_FACET_TYPES: readonly ("type" | "location" | "organization" | "access" | "tags" | "created" | "modified" | "categories" | "event-from" | "group-type" | "group-access" | "event-access" | "event-date" | "contentstatus" | "within" | "hub-content" | "group-within" | "group-organization" | "membership" | "group-created" | "post-groups" | "post-status")[];
export type WellKnownFacetTypes = (typeof WELL_KNOWN_FACET_TYPES)[number];
/**
 * Given a well-known facet key, returns an array of entity types
 * that the facet is valid for
 *
 * @param facetKey the facet key to get the valid target entities for
 * @returns an array of entity types that the facet is valid for
 */
export declare function getFacetTargetEntities(facetKey: WellKnownFacetTypes): EntityType[];
