/**
 * Bootstrap type definitions — interfaces, enums, and type exports
 * for the Syntro SDK initialization flow.
 */
import type { SmartCanvasConfig, SmartCanvasHandle } from './api';
import type { AppLoader } from './apps/AppLoader';
import type { ExperimentClient } from './experiments/types';
import type { SessionMetricTracker } from './metrics';
import type { SmartCanvasRuntime } from './runtime';
import type { TelemetryClient } from './telemetry/types';
import type { CanvasConfigFetcher } from './types';
export interface SyntroInitOptions {
    /**
     * The Syntro token containing all credentials.
     * Generated from your admin dashboard.
     *
     * Optional in editor mode (when editor_token is present in URL params).
     */
    token?: string;
    /**
     * Optional canvas configuration overrides.
     */
    canvas?: Partial<Omit<SmartCanvasConfig, 'integrations' | 'fetcher'>>;
    /**
     * Custom config fetcher to override the default experiment-based fetcher.
     * Use this for local development or when bypassing the experiment server.
     *
     * When provided, this fetcher is used instead of the experiments-based config lookup.
     * The token's telemetry credentials (t field) are still used if present.
     */
    fetcher?: CanvasConfigFetcher;
    /**
     * @deprecated Session metrics are always enabled. This flag has no effect.
     */
    enableSessionMetrics?: boolean;
    /**
     * CDN base URL for loading adaptive bundles.
     * Adaptives are loaded from: {cdnBase}/adaptives/{appId}/index.js
     *
     * @default "https://cdn.syntrologie.com"
     */
    cdnBase?: string;
    /**
     * @deprecated Core app executors are now registered synchronously.
     * This option has no effect and will be removed in a future version.
     */
    registerBuiltInApps?: boolean;
    /**
     * Enable debug mode. emit() returns EmitResult, all events logged to console.
     * @default false
     */
    debug?: boolean;
    /**
     * Enable test mode. PostHog capture skipped, toasts not rendered,
     * full event history retained (uncapped).
     * @default false
     */
    testMode?: boolean;
    /**
     * App-provided signal values set at init time. Merged into SDK attributes
     * alongside auto-collected browser/geo signals for local flag evaluation.
     *
     * Use this when the host environment (MCP server, agent, etc.) provides
     * signal values that the SDK can't auto-collect from the browser.
     *
     * Tracked as a discrete PostHog event (app_signals_init) on init.
     */
    appSignalsInit?: Record<string, string>;
}
export interface SyntroInitResult {
    /**
     * The SmartCanvas handle for controlling the canvas.
     */
    canvas: SmartCanvasHandle;
    /**
     * The unified v2 runtime with all providers.
     * Use this to access telemetry, context, events, and state.
     */
    runtime: SmartCanvasRuntime;
    /**
     * The experiment client, if experiments are configured in the token.
     * @deprecated Access via runtime.telemetry or use DecisionStrategy instead
     */
    experiments?: ExperimentClient;
    /**
     * The telemetry client, if telemetry is configured in the token.
     * @deprecated Access via runtime.telemetry instead
     */
    telemetry?: TelemetryClient;
    /**
     * The session metric tracker, if enableSessionMetrics is true.
     * @deprecated Access via runtime.sessionMetrics instead
     */
    sessionMetrics?: SessionMetricTracker;
    /**
     * App loader for loading external apps from CDN.
     * Exposed for manual app loading if needed.
     */
    appLoader: AppLoader;
}
