pub const geometry = @import("geometry");
pub const assets = @import("assets");
pub const app_dirs = @import("app_dirs");
pub const app_manifest = @import("app_manifest");
pub const trace = @import("trace");
pub const diagnostics = @import("diagnostics");
pub const platform_info = @import("platform_info");
pub const canvas = @import("canvas");
pub const code = canvas.code;
pub const markdown = canvas.markdown;

pub const runtime = @import("runtime/root.zig");
pub const platform = @import("platform/root.zig");
pub const window_state = @import("window_state/root.zig");
pub const asset_server = @import("assets/root.zig");
pub const debug = @import("debug/root.zig");
pub const automation = @import("automation/root.zig");
pub const embed = @import("embed/root.zig");
pub const extensions = @import("extensions/root.zig");
pub const js = @import("js/root.zig");
pub const bridge = @import("bridge/root.zig");
pub const frontend = @import("frontend/root.zig");
pub const security = @import("security/root.zig");
pub const updater = @import("updater/root.zig");
pub const update_check_command = platform.update_check_command;

pub const Runtime = runtime.Runtime;
pub const RuntimeOptions = runtime.Options;
pub const App = runtime.App;
pub const Event = runtime.Event;
pub const LifecycleEvent = runtime.LifecycleEvent;
pub const Command = runtime.Command;
pub const CommandEvent = runtime.CommandEvent;
pub const CommandSource = runtime.CommandSource;
pub const TestHarness = runtime.TestHarness;
pub const UiApp = runtime.UiApp;
pub const UiAppWithFeatures = runtime.UiAppWithFeatures;
pub const UiAppFeatures = runtime.UiAppFeatures;
pub const Effects = runtime.Effects;
pub const EffectLine = runtime.EffectLine;
pub const EffectExit = runtime.EffectExit;
pub const EffectExitReason = runtime.EffectExitReason;
pub const EffectExecutor = runtime.EffectExecutor;
pub const EffectOutputMode = runtime.EffectOutputMode;
pub const FetchResponseMode = runtime.FetchResponseMode;
pub const EffectResponse = runtime.EffectResponse;
pub const EffectFetchOutcome = runtime.EffectFetchOutcome;
pub const EffectFileOp = runtime.EffectFileOp;
pub const EffectFileEvent = runtime.EffectFileEvent;
pub const EffectFileOutcome = runtime.EffectFileOutcome;
pub const EffectFileResult = runtime.EffectFileResult;
pub const FileAccessBinding = runtime.FileAccessBinding;
pub const effect_file_stream_chunk_bytes = runtime.effect_file_stream_chunk_bytes;
pub const max_effect_file_streams = runtime.max_effect_file_streams;
pub const EffectCredentialsOperation = runtime.EffectCredentialsOperation;
pub const EffectCredentialsOutcome = runtime.EffectCredentialsOutcome;
pub const EffectCredentialsResult = runtime.EffectCredentialsResult;
pub const EffectPersistOutcome = runtime.EffectPersistOutcome;
pub const EffectPersistResult = runtime.EffectPersistResult;
pub const max_effect_persist_snapshot_bytes = runtime.max_effect_persist_snapshot_bytes;
pub const EffectStoreOutcome = runtime.EffectStoreOutcome;
pub const EffectStoreOp = runtime.EffectStoreOp;
pub const RecordStoreBinding = runtime.RecordStoreBinding;
pub const EffectDbValue = runtime.EffectDbValue;
pub const EffectDbStatement = runtime.EffectDbStatement;
pub const EffectDbOutcome = runtime.EffectDbOutcome;
pub const EffectDbResultKind = runtime.EffectDbResultKind;
pub const EffectDbResult = runtime.EffectDbResult;
pub const RelationalStoreBinding = runtime.RelationalStoreBinding;
pub const max_db_effects = runtime.max_db_effects;
pub const max_effect_db_sql_bytes = runtime.max_effect_db_sql_bytes;
pub const max_effect_db_parameters = runtime.max_effect_db_parameters;
pub const max_effect_db_exec_statements = runtime.max_effect_db_exec_statements;
pub const max_effect_db_parameter_bytes = runtime.max_effect_db_parameter_bytes;
pub const max_effect_db_exec_parameter_bytes = runtime.max_effect_db_exec_parameter_bytes;
pub const default_effect_db_page_rows = runtime.default_effect_db_page_rows;
pub const max_effect_db_page_bytes = runtime.max_effect_db_page_bytes;
pub const max_effect_db_result_rows = runtime.max_effect_db_result_rows;
pub const max_effect_db_result_bytes = runtime.max_effect_db_result_bytes;
pub const max_effect_store_key_bytes = runtime.max_effect_store_key_bytes;
pub const max_effect_store_value_bytes = runtime.max_effect_store_value_bytes;
pub const max_effect_store_batch_entries = runtime.max_effect_store_batch_entries;
pub const max_effect_store_batch_bytes = runtime.max_effect_store_batch_bytes;
pub const max_effect_store_result_bytes = runtime.max_effect_store_result_bytes;
pub const default_effect_store_scan_limit = runtime.default_effect_store_scan_limit;
pub const max_effect_store_scan_limit = runtime.max_effect_store_scan_limit;
pub const effect_error_exit_code = runtime.effect_error_exit_code;
pub const max_effects = runtime.max_effects;
pub const max_effect_argv = runtime.max_effect_argv;
pub const max_effect_argv_bytes = runtime.max_effect_argv_bytes;
pub const max_effect_stdin_bytes = runtime.max_effect_stdin_bytes;
pub const max_effect_line_bytes = runtime.max_effect_line_bytes;
pub const max_effect_line_bytes_ceiling = runtime.max_effect_line_bytes_ceiling;
pub const max_effect_collect_bytes = runtime.max_effect_collect_bytes;
pub const max_effect_stderr_tail_bytes = runtime.max_effect_stderr_tail_bytes;
pub const max_effect_queue_entries = runtime.max_effect_queue_entries;
pub const max_effect_url_bytes = runtime.max_effect_url_bytes;
pub const max_effect_fetch_headers = runtime.max_effect_fetch_headers;
pub const max_effect_fetch_header_bytes = runtime.max_effect_fetch_header_bytes;
pub const max_effect_fetch_payload_bytes = runtime.max_effect_fetch_payload_bytes;
pub const max_effect_body_bytes = runtime.max_effect_body_bytes;
pub const default_effect_fetch_timeout_ms = runtime.default_effect_fetch_timeout_ms;
pub const max_effect_file_path_bytes = runtime.max_effect_file_path_bytes;
pub const max_effect_file_bytes = runtime.max_effect_file_bytes;
pub const persist_store = runtime.persist_store;
pub const PersistStore = runtime.PersistStore;
pub const PersistOutcome = runtime.PersistOutcome;
pub const max_persist_snapshot_bytes = runtime.max_persist_snapshot_bytes;
pub const record_store = runtime.record_store;
pub const RecordStore = runtime.RecordStore;
pub const relational_store = runtime.relational_store;
pub const RelationalStore = runtime.RelationalStore;
pub const EffectClipboardOp = runtime.EffectClipboardOp;
pub const EffectClipboardOutcome = runtime.EffectClipboardOutcome;
pub const EffectClipboardResult = runtime.EffectClipboardResult;
pub const max_effect_clipboard_bytes = runtime.max_effect_clipboard_bytes;
pub const TimerMode = runtime.TimerMode;
pub const EffectTimer = runtime.EffectTimer;
pub const EffectTimerOutcome = runtime.EffectTimerOutcome;
pub const max_effect_timers = runtime.max_effect_timers;
pub const EffectAudio = runtime.EffectAudio;
pub const EffectAudioEventKind = runtime.EffectAudioEventKind;
pub const EffectAudioCaptureEvent = runtime.EffectAudioCaptureEvent;
pub const EffectAudioCaptureEventKind = runtime.EffectAudioCaptureEventKind;
pub const decodeAudioCaptureChannelEvent = runtime.decodeAudioCaptureChannelEvent;
pub const EffectAudioSource = runtime.EffectAudioSource;
pub const audioCachePath = runtime.audioCachePath;
pub const max_effect_audio_path_bytes = runtime.max_effect_audio_path_bytes;
pub const EffectVideo = runtime.EffectVideo;
pub const EffectVideoEventKind = runtime.EffectVideoEventKind;
pub const EffectVideoSource = runtime.EffectVideoSource;
pub const max_effect_video_path_bytes = runtime.max_effect_video_path_bytes;
pub const EffectImageResult = runtime.EffectImageResult;
pub const EffectImageOutcome = runtime.EffectImageOutcome;
pub const imageCachePath = runtime.imageCachePath;
pub const max_effect_image_path_bytes = runtime.max_effect_image_path_bytes;
pub const max_effect_image_bytes = runtime.max_effect_image_bytes;
pub const max_effect_image_source_bytes = runtime.max_effect_image_source_bytes;
pub const effect_image_blob_hash_len = runtime.effect_image_blob_hash_len;
pub const EffectChannelEvent = runtime.EffectChannelEvent;
pub const EffectChannelEventKind = runtime.EffectChannelEventKind;
pub const ChannelHandle = runtime.ChannelHandle;
pub const max_effect_channels = runtime.max_effect_channels;
pub const max_effect_channel_bytes = runtime.max_effect_channel_bytes;
pub const max_effect_channel_pending = runtime.max_effect_channel_pending;
pub const EffectPtyEvent = runtime.EffectPtyEvent;
pub const EffectPtyEventKind = runtime.EffectPtyEventKind;
pub const max_effect_ptys = runtime.max_effect_ptys;
pub const max_effect_pty_chunk_bytes = runtime.max_effect_pty_chunk_bytes;
pub const max_effect_pty_write_bytes = runtime.max_effect_pty_write_bytes;
pub const max_effect_pty_term_bytes = runtime.max_effect_pty_term_bytes;
pub const EffectHostResult = runtime.EffectHostResult;
pub const HostCallBinding = runtime.HostCallBinding;
pub const HostCallCompletion = runtime.HostCallCompletion;
pub const ServiceHost = runtime.ServiceHost;
pub const serviceEnvironmentVariableAllowed = runtime.serviceEnvironmentVariableAllowed;
pub const ServicePool = runtime.ServicePool;
pub const service_pool = runtime.service_pool;
pub const max_effect_host_name_bytes = runtime.max_effect_host_name_bytes;
pub const max_effect_host_payload_bytes = runtime.max_effect_host_payload_bytes;
pub const max_effect_host_result_bytes = runtime.max_effect_host_result_bytes;
pub const TsCoreHost = runtime.TsCoreHost;
pub const TsUiApp = runtime.TsUiApp;
pub const Clock = runtime.Clock;
pub const TestClock = runtime.TestClock;
pub const nowMs = runtime.nowMs;
pub const nowNanoseconds = runtime.nowNanoseconds;
pub const monotonicMs = runtime.monotonicMs;
pub const monotonicNanoseconds = runtime.monotonicNanoseconds;
pub const setFreestandingMonotonicNanoseconds = runtime.setFreestandingMonotonicNanoseconds;
pub const RegisteredImage = runtime.RegisteredImage;
pub const max_registered_canvas_images = runtime.max_registered_canvas_images;
pub const max_registered_canvas_image_pixel_bytes = runtime.max_registered_canvas_image_pixel_bytes;
pub const max_registered_canvas_image_pixel_bytes_ceiling = runtime.max_registered_canvas_image_pixel_bytes_ceiling;
pub const MediaSurfaceProducer = runtime.MediaSurfaceProducer;
pub const max_media_surface_channels = runtime.max_media_surface_channels;
pub const max_media_surface_pixel_bytes = runtime.max_media_surface_pixel_bytes;
pub const ShellConfig = app_manifest.ShellConfig;
pub const ShellWindow = app_manifest.ShellWindow;
pub const ShellView = app_manifest.ShellView;
pub const ShellEdge = app_manifest.ShellEdge;
pub const ShellAxis = app_manifest.ShellAxis;
pub const ShellTab = app_manifest.ShellTab;
pub const ShellPrimaryAction = app_manifest.ShellPrimaryAction;
pub const ShellChrome = app_manifest.ShellChrome;

pub const WebViewSource = platform.WebViewSource;
pub const WebViewSourceKind = platform.WebViewSourceKind;
pub const WebViewAssetSource = platform.WebViewAssetSource;
pub const WebEngine = platform.WebEngine;
pub const PlatformFeature = platform.PlatformFeature;
pub const AudioCaptureSource = platform.AudioCaptureSource;
pub const AudioCaptureFormat = platform.AudioCaptureFormat;
pub const AudioCaptureEvent = platform.AudioCaptureEvent;
pub const AudioCaptureEventKind = platform.AudioCaptureEventKind;
pub const AudioCaptureSink = platform.AudioCaptureSink;
pub const AudioCapturePushResult = platform.AudioCapturePushResult;
pub const max_audio_capture_pcm_bytes = platform.max_audio_capture_pcm_bytes;
pub const ViewKind = platform.ViewKind;
pub const ViewOptions = platform.ViewOptions;
pub const ViewPatch = platform.ViewPatch;
pub const ViewInfo = platform.ViewInfo;
pub const GpuFrame = platform.GpuFrame;
pub const GpuSurfaceOptions = platform.GpuSurfaceOptions;
pub const GpuSurfaceBackend = platform.GpuSurfaceBackend;
pub const GpuSurfacePixelFormat = platform.GpuSurfacePixelFormat;
pub const GpuSurfacePresentMode = platform.GpuSurfacePresentMode;
pub const GpuSurfaceAlphaMode = platform.GpuSurfaceAlphaMode;
pub const GpuSurfaceColorSpace = platform.GpuSurfaceColorSpace;
pub const GpuSurfaceStatus = platform.GpuSurfaceStatus;
pub const CanvasFrameProfileRisk = platform.CanvasFrameProfileRisk;
pub const AppInfo = platform.AppInfo;
pub const Platform = platform.Platform;
pub const NullPlatform = platform.NullPlatform;
pub const WindowId = platform.WindowId;
pub const WindowOptions = platform.WindowOptions;
pub const WindowCreateOptions = platform.WindowCreateOptions;
pub const WindowInfo = platform.WindowInfo;
pub const WindowState = platform.WindowState;
pub const WindowRestorePolicy = platform.WindowRestorePolicy;
pub const WindowInitialPlacement = platform.WindowInitialPlacement;
pub const WindowTitlebarStyle = platform.WindowTitlebarStyle;
pub const WindowChrome = platform.WindowChrome;
pub const FormFactor = platform.FormFactor;
pub const WindowDragRegion = platform.WindowDragRegion;
pub const WindowShowMode = platform.WindowShowMode;
pub const WindowClosePolicy = platform.WindowClosePolicy;
pub const LaunchAtLoginStatus = platform.LaunchAtLoginStatus;
pub const Menu = platform.Menu;
pub const MenuItem = platform.MenuItem;
pub const Shortcut = platform.Shortcut;
pub const ShortcutModifiers = platform.ShortcutModifiers;
pub const ShortcutEvent = platform.ShortcutEvent;
pub const TimerEvent = platform.TimerEvent;
pub const reserved_timer_id_base = platform.reserved_timer_id_base;
pub const ColorScheme = platform.ColorScheme;
pub const Appearance = platform.Appearance;
pub const GpuSurfaceFrameEvent = platform.GpuSurfaceFrameEvent;
pub const GpuSurfaceResizeEvent = platform.GpuSurfaceResizeEvent;
pub const GpuSurfaceInputKind = platform.GpuSurfaceInputKind;
pub const GpuSurfaceInputEvent = platform.GpuSurfaceInputEvent;
pub const PinchPhase = platform.PinchPhase;
pub const PinchEvent = platform.PinchEvent;
pub const FileFilter = platform.FileFilter;
pub const OpenDialogOptions = platform.OpenDialogOptions;
pub const OpenDialogResult = platform.OpenDialogResult;
pub const SaveDialogOptions = platform.SaveDialogOptions;
pub const MessageDialogStyle = platform.MessageDialogStyle;
pub const MessageDialogResult = platform.MessageDialogResult;
pub const MessageDialogOptions = platform.MessageDialogOptions;
pub const NotificationOptions = platform.NotificationOptions;
pub const StatusItemId = platform.StatusItemId;
pub const primary_status_item_id = platform.primary_status_item_id;
pub const TrayItemId = platform.TrayItemId;
pub const TrayOptions = platform.TrayOptions;
pub const TrayShell = platform.TrayShell;
pub const TrayMenuItem = platform.TrayMenuItem;
pub const TraySegmentOption = platform.TraySegmentOption;
pub const TraySegmentedRow = platform.TraySegmentedRow;
pub const TrayMetricRow = platform.TrayMetricRow;
pub const TrayChartRow = platform.TrayChartRow;
pub const BridgeDispatcher = bridge.Dispatcher;
pub const BridgePolicy = bridge.Policy;
pub const BridgeCommandPolicy = bridge.CommandPolicy;
pub const BridgeHandler = bridge.Handler;
pub const BridgeRegistry = bridge.Registry;
pub const SecurityPolicy = security.Policy;
pub const NavigationPolicy = security.NavigationPolicy;
pub const ExternalLinkPolicy = security.ExternalLinkPolicy;
pub const ExternalLinkAction = security.ExternalLinkAction;

test {
    @import("std").testing.refAllDecls(@This());
}
