/**
 * Platform registration — central place where platform packages are imported
 * and wired into the runtime. This file represents the "all platforms"
 * version (full feature set); CDN bundles for variants that exclude one or
 * more platforms swap this module via esbuild's `alias` config (see
 * `scripts/build-cdn.js`) for `_platforms-empty.ts` or future per-variant
 * stubs.
 *
 * Why this indirection: bundlers can only reliably tree-shake at the
 * IMPORT level. Keeping the platform-package imports here, behind a single
 * stable module path, lets the build orchestrator pick which version goes
 * into each bundle. The lite bundle's `_platforms-registered` resolves to
 * `_platforms-empty.ts` (zero platform imports) so the platform packages
 * are never bundled.
 *
 * Adding a new platform N:
 *   1. Add the platform package as a dependency.
 *   2. Import it here, alongside Shopify.
 *   3. Add a wire block inside `wirePlatformAdapters()` and a factory in
 *      `platformAdapterFactories`.
 *   4. Update `build-cdn.js`'s variant matrix to include N as needed.
 *
 * The platform list flag `__INCLUDE_PLATFORMS__` is purely informational
 * (debug / runtime introspection): the actual code-shipping decision is
 * made by which variant of this file the bundler uses.
 */
import type { PlatformAdapter } from '@syntrologie/platform-shopify';
export type { PlatformAdapter } from '@syntrologie/platform-shopify';
import { ShopifyPixelBridge } from '@syntrologie/platform-shopify';
import type { TelemetryClient } from './telemetry/types';
export interface PlatformWireContext {
    telemetry: TelemetryClient;
    telemetryHost: string | undefined;
    telemetryKey: string;
    platformAdapter: PlatformAdapter | null;
    debug: (tag: string, msg: string) => void;
    warn: (tag: string, msg: string, err?: unknown) => void;
}
export interface PlatformWireResult {
    shopifyPixelBridge?: ShopifyPixelBridge;
}
/** Factories for `detectPlatform()` to iterate. Empty when no platforms are linked in. */
export declare const platformAdapterFactories: Array<() => PlatformAdapter>;
/**
 * Wire platform-specific adapters into the runtime — pixel bridges, third-party
 * checkout integrations, etc. Called once at SDK boot from bootstrap-runtime.
 * Returns handles the boot path needs to retain (currently just the Shopify
 * pixel bridge so it can `updateContext()` later when consent / distinct_id
 * arrives).
 */
export declare function wirePlatformAdapters(ctx: PlatformWireContext): PlatformWireResult;
