import Fastify from "fastify";
import type { AppConfig } from "./config.js";
import type { SessionService } from "./services/sessions.js";
import type { AuditWriter } from "./services/audit.js";
import type { SurfaceRegistry } from "./surfaces/index.js";
import type { ToolRegistry } from "./tools/registry.js";
import type { ToolContext, ToolResult } from "./tools/contracts.js";
import type { ConsentManager } from "./security/consent-manager.js";
import type { TrustEngine } from "./security/trust-engine.js";
import type { ToolPermission } from "./security/tool-permissions.js";
import type { ProfileName } from "./security/tool-profiles.js";
import type { JaitDB } from "./db/index.js";
import type { WsControlPlane } from "./ws.js";
import type { HookBus } from "./scheduler/hooks.js";
import type { SchedulerService } from "./scheduler/service.js";
import type { MemoryService } from "./memory/contracts.js";
import type { UserService } from "./services/users.js";
import type { DeviceRegistry } from "./services/device-registry.js";
import type { VoiceService } from "./voice/service.js";
import type { ScreenShareService } from "@jait/screen-share";
import type { SessionStateService } from "./services/session-state.js";
import type { WorkspaceStateService } from "./services/workspace-state.js";
import type { ThreadService } from "./services/threads.js";
import type { RepositoryService } from "./services/repositories.js";
import type { PlanService } from "./services/plans.js";
import type { ProviderRegistry } from "./providers/registry.js";
import type { SqliteDatabase } from "./db/sqlite-shim.js";
import type { WorkspaceService } from "./services/workspaces.js";
import type { AssistantProfileService } from "./services/assistant-profiles.js";
import type { BrowserCollaborationService } from "./services/browser-collaboration.js";
export interface ServerDeps {
    db?: JaitDB;
    sqlite?: SqliteDatabase;
    sessionService?: SessionService;
    userService?: UserService;
    audit?: AuditWriter;
    surfaceRegistry?: SurfaceRegistry;
    toolRegistry?: ToolRegistry;
    consentManager?: ConsentManager;
    trustEngine?: TrustEngine;
    activeToolProfileName?: ProfileName;
    toolPermissions?: Map<string, ToolPermission>;
    ws?: WsControlPlane;
    hooks?: HookBus;
    scheduler?: SchedulerService;
    hookSecret?: string;
    onWakeHook?: () => Promise<unknown>;
    onAgentHook?: (payload: unknown) => Promise<unknown>;
    memoryService?: MemoryService;
    deviceRegistry?: DeviceRegistry;
    sessionState?: SessionStateService;
    workspaceService?: WorkspaceService;
    assistantProfileService?: AssistantProfileService;
    workspaceState?: WorkspaceStateService;
    toolExecutor?: (toolName: string, input: unknown, context: ToolContext, options?: {
        dryRun?: boolean;
        consentTimeoutMs?: number;
    }) => Promise<ToolResult>;
    voiceService?: VoiceService;
    screenShare?: ScreenShareService;
    threadService?: ThreadService;
    repoService?: RepositoryService;
    planService?: PlanService;
    maintenanceService?: import("./services/maintenance.js").MaintenanceService;
    notifications?: import("./services/notifications.js").NotificationService;
    providerRegistry?: ProviderRegistry;
    shutdown?: () => Promise<void>;
    gitService?: import("./routes/threads.js").ThreadRouteDeps["gitService"];
    previewService?: import("./services/preview.js").PreviewService;
    architectureDiagramService?: import("./services/architecture-diagrams.js").ArchitectureDiagramService;
    browserCollaborationService?: BrowserCollaborationService;
    pluginManager?: import("./plugins/manager.js").PluginManager;
    skillRegistry?: import("./skills/index.js").SkillRegistry;
    clawhubClient?: import("./clawhub/client.js").ClawHubClient;
    voiceAssistantService?: import("./voice-assistant/service.js").VoiceAssistantService;
}
export declare function createServer(config: AppConfig, deps?: ServerDeps): Promise<Fastify.FastifyInstance<import("http").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse>, import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>, Fastify.FastifyBaseLogger, Fastify.FastifyTypeProviderDefault>>;
//# sourceMappingURL=server.d.ts.map