diff --git a/src/host-contract.ts b/src/host-contract.ts new file mode 100644 index 00000000..c863dfdd --- /dev/null +++ b/src/host-contract.ts @@ -0,0 +1,20 @@ +import type { Logger } from "@/observability/logger/types"; + +/** + * Contract a host application must implement to embed this component + * as an MF 2.0 remote. Both standalone SSR and remote modes satisfy + * this interface; features depend only on HostContract and never on + * the hosting mode. + */ +export interface HostContract { + /** Resolved locale, e.g. "ru", "en". */ + locale: string; + /** Canonical origin for SEO (e.g. "https://flights.aeroflot.ru"). */ + canonicalOrigin: string; + /** Optional deep-link navigation override from the host router. */ + navigate?: (path: string) => void; + /** Optional consent flags; absent == assumed true. */ + consent?: { analytics: boolean; telemetry: boolean }; + /** Optional host logger for log stream merging. */ + logger?: Logger; +}