import type { ExtensionAPI, ExtensionContext } from "@earendil-works/pi-coding-agent"; import { type ToduTaskServiceRuntime } from "../services/todu/default-task-service"; import type { ToduDaemonConnectionState } from "../services/todu/daemon-connection"; declare const SYNC_STATUS_KEY = "todu-sync-status"; declare const KNOWN_SYNC_STATUSES: readonly ["disconnected", "connected", "syncing"]; type KnownSyncStatus = (typeof KNOWN_SYNC_STATUSES)[number]; type SyncStatusValue = "unknown" | KnownSyncStatus | `custom:${string}`; export interface SyncStatusContextState { syncStatus: SyncStatusValue; } export interface SyncStatusContextController { getState(): SyncStatusContextState; attach(ctx: ExtensionContext): Promise; dispose(): Promise; } export interface CreateSyncStatusContextControllerDependencies { runtime?: Pick; } declare const createSyncStatusContextController: (_pi: Pick, dependencies?: CreateSyncStatusContextControllerDependencies) => SyncStatusContextController; declare const handleConnectionStateChange: (state: ToduDaemonConnectionState, setSyncStatus: (status: SyncStatusValue) => void) => void; declare const normalizeSyncStatus: (payload: unknown) => SyncStatusValue; declare const extractSyncStatus: (payload: unknown) => string | null; declare const formatSyncStatus: (status: SyncStatusValue) => string; declare const getDefaultSyncStatusContextController: (pi?: Pick) => SyncStatusContextController; declare const resetDefaultSyncStatusContextController: () => Promise; export { createSyncStatusContextController, extractSyncStatus, formatSyncStatus, getDefaultSyncStatusContextController, handleConnectionStateChange, normalizeSyncStatus, resetDefaultSyncStatusContextController, SYNC_STATUS_KEY, };