import type { DatabaseSync } from 'node:sqlite'; import type { ProductNotification } from '@xopcai/gateway-contract'; import type { Config } from '../../config/schema.js'; import type { ScenePrincipal } from '../../scenes/contracts.js'; import { type SceneReadOnlyExecutor } from '../../scenes/execution.js'; import type { SceneHttpServices } from '../../scenes/httpServices.js'; import type { SceneMailContextProvider } from '../../scenes/mailContext.js'; /** Composition root for the initialized database. Never creates tables or starts an old worker. */ export declare class GatewaySceneHost { private readonly db; readonly http: SceneHttpServices; private readonly runtime; private readonly notifications; private readonly browserDispatcher; private timer?; private active?; private stopped; private nextMaintenanceAt; private readonly clock; constructor(db: DatabaseSync, input: { principal: ScenePrincipal; config: () => Config; publish: (type: 'notification.created', notification: ProductNotification) => void; executor?: SceneReadOnlyExecutor; mail?: SceneMailContextProvider; clock?: () => number; intervalMs?: number; }); private readonly intervalMs; start(): void; tick(): Promise; /** Must finish before the Gateway closes SQLite or its realtime broker. */ stop(): Promise; }