import * as _angular_core from '@angular/core'; import { InjectionToken, EnvironmentProviders } from '@angular/core'; declare const EDSIS_RUNTIME_LEGACY_SCHEMA_VERSION: 1; declare const EDSIS_RUNTIME_SCHEMA_VERSION: 2; declare const EDSIS_RUNTIME_PLATFORMS: readonly ["windows", "macos", "linux", "ios", "android", "web"]; declare const EDSIS_DEVICE_TYPES: readonly ["browser", "windows", "macos", "android", "ipados"]; declare const EDSIS_RUNTIME_CAPABILITIES: readonly ["window-controls", "window-layout", "app-menu", "tray", "notification-badge", "native-notification", "dialog", "clipboard-text", "open-url", "network-diagnostics", "google-native-sign-in"]; type EdsisRuntimePlatform = (typeof EDSIS_RUNTIME_PLATFORMS)[number]; type EdsisDeviceType = (typeof EDSIS_DEVICE_TYPES)[number]; type EdsisRuntimeCapability = (typeof EDSIS_RUNTIME_CAPABILITIES)[number]; type EdsisRuntimeEnvironment = 'production' | 'development' | 'local'; type EdsisRuntimeHost = 'tauri' | 'browser'; type EdsisDeviceFamily = 'desktop' | 'tablet' | 'responsive'; type EdsisUiProfile = 'desktop' | 'tablet' | 'responsive'; interface EdsisRuntimeContextBase { readonly host: EdsisRuntimeHost; readonly environment: EdsisRuntimeEnvironment; readonly platform: EdsisRuntimePlatform; readonly deviceFamily: EdsisDeviceFamily; readonly uiProfile: EdsisUiProfile; readonly app: { readonly identifier: string; readonly name: string; readonly version: string; readonly arch: string; readonly debug: boolean; }; readonly capabilities: readonly EdsisRuntimeCapability[]; } /** Legacy wire payload accepted during the schema V2 migration. */ interface EdsisRuntimeContextV1 extends EdsisRuntimeContextBase { readonly schemaVersion: 1; } /** Canonical runtime payload returned to Angular consumers. */ interface EdsisRuntimeContextV2 extends EdsisRuntimeContextBase { readonly schemaVersion: 2; readonly deviceType: EdsisDeviceType; } type EdsisRuntimeContext = EdsisRuntimeContextV2; type EdsisRuntimeWireContext = EdsisRuntimeContextV1 | EdsisRuntimeContextV2; declare function isEdsisRuntimeContextV1(value: unknown): value is EdsisRuntimeContextV1; declare function isEdsisRuntimeContextV2(value: unknown): value is EdsisRuntimeContextV2; /** Validate either supported wire schema and normalize it to the immutable V2 contract. */ declare function normalizeEdsisRuntimeContext(value: unknown): EdsisRuntimeContextV2 | null; declare function freezeEdsisRuntimeContext(context: T): T; declare function createBrowserRuntimeContext(environment: EdsisRuntimeEnvironment): EdsisRuntimeContextV2; type EdsisWindowControlAction = 'close' | 'minimize' | 'toggle-maximize'; declare class NativeHostService { private readonly runtime; supports(capability: EdsisRuntimeCapability): boolean; emitWindowControl(action: EdsisWindowControlAction): Promise; startDragging(): Promise; setNotificationBadge(unreadCount: number): Promise; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } /** Browser-safe compatibility helper for callers outside Angular injection. */ declare function setNativeNotificationBadge(unreadCount: number): Promise; interface EdsisRuntimeConfig { readonly browserEnvironment?: EdsisRuntimeEnvironment; readonly eventTimeoutMs?: number; } interface ResolvedEdsisRuntimeConfig { readonly browserEnvironment: EdsisRuntimeEnvironment; readonly eventTimeoutMs: number; } declare const EDSIS_RUNTIME_CONFIG: InjectionToken; declare const EDSIS_RUNTIME_READY_EVENT: "edsis:runtime-ready"; declare global { interface Window { readonly EDSIS_RUNTIME?: unknown; } } declare class RuntimeContextService { private readonly documentRef; private readonly config; private readonly contextState; private initialization; readonly context: _angular_core.Signal; readonly deviceType: _angular_core.Signal<"windows" | "macos" | "android" | "browser" | "ipados">; readonly isDesktopShell: _angular_core.Signal; readonly isTabletShell: _angular_core.Signal; readonly isIPadOS: _angular_core.Signal; readonly isAndroidTablet: _angular_core.Signal; initialize(): Promise; supports(capability: EdsisRuntimeCapability): boolean; private resolveContext; private applyContext; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } declare function provideEdsisRuntime(config?: EdsisRuntimeConfig): EnvironmentProviders; declare const EDSIS_TABLET_MINIMUM_VIEWPORT_WIDTH = 600; type TabletViewportBlockReason = 'portrait' | 'too-narrow' | null; declare class TabletViewportService { private readonly documentRef; private readonly widthState; private readonly heightState; private initialized; readonly width: _angular_core.Signal; readonly height: _angular_core.Signal; readonly isLandscape: _angular_core.Signal; readonly meetsMinimumWidth: _angular_core.Signal; readonly blockReason: _angular_core.Signal; readonly isSupported: _angular_core.Signal; initialize(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } export { EDSIS_DEVICE_TYPES, EDSIS_RUNTIME_CAPABILITIES, EDSIS_RUNTIME_CONFIG, EDSIS_RUNTIME_LEGACY_SCHEMA_VERSION, EDSIS_RUNTIME_PLATFORMS, EDSIS_RUNTIME_READY_EVENT, EDSIS_RUNTIME_SCHEMA_VERSION, EDSIS_TABLET_MINIMUM_VIEWPORT_WIDTH, NativeHostService, RuntimeContextService, TabletViewportService, createBrowserRuntimeContext, freezeEdsisRuntimeContext, isEdsisRuntimeContextV1, isEdsisRuntimeContextV2, normalizeEdsisRuntimeContext, provideEdsisRuntime, setNativeNotificationBadge }; export type { EdsisDeviceFamily, EdsisDeviceType, EdsisRuntimeCapability, EdsisRuntimeConfig, EdsisRuntimeContext, EdsisRuntimeContextV1, EdsisRuntimeContextV2, EdsisRuntimeEnvironment, EdsisRuntimeHost, EdsisRuntimePlatform, EdsisRuntimeWireContext, EdsisUiProfile, EdsisWindowControlAction, ResolvedEdsisRuntimeConfig, TabletViewportBlockReason };