import type { FieldPolicyRegistry } from "./contract.js"; export declare const CATALOG_PRESENTATION_SUBJECT_MODULES: { readonly PRODUCTS: "products"; readonly CRUISES: "cruises"; readonly ACCOMMODATIONS: "accommodations"; readonly CRUISE_SHIPS: "cruise-ships"; readonly ACCOMMODATION_PROPERTIES: "accommodation-properties"; }; export type CatalogPresentationSubjectModule = (typeof CATALOG_PRESENTATION_SUBJECT_MODULES)[keyof typeof CATALOG_PRESENTATION_SUBJECT_MODULES]; export type CatalogPresentationSubjectKind = "sellable" | "referenced"; export interface CatalogPresentationSubjectDefinition { module: CatalogPresentationSubjectModule; kind: CatalogPresentationSubjectKind; ownerPackage: string; description: string; } export declare const catalogPresentationSubjectDefinitions: readonly CatalogPresentationSubjectDefinition[]; export declare function isCatalogPresentationSubjectModule(value: string): value is CatalogPresentationSubjectModule; export declare function getCatalogPresentationSubjectDefinition(module: string): CatalogPresentationSubjectDefinition | undefined; export declare function assertCatalogPresentationSubjectModule(module: string): CatalogPresentationSubjectModule; export interface RegisteredPresentationSubject { definition: CatalogPresentationSubjectDefinition; registry: FieldPolicyRegistry; } export declare function createPresentationSubjectRegistry(subjects: readonly RegisteredPresentationSubject[]): ReadonlyMap;