import type { Logger } from "pino";
export type ListenTarget = {
    type: "tcp";
    host: string;
    port: number;
} | {
    type: "socket";
    path: string;
} | {
    type: "pipe";
    path: string;
};
export declare function parseListenString(listen: string): ListenTarget;
import type { OpenAiSpeechProviderConfig } from "./speech/providers/openai/config.js";
import type { LocalSpeechProviderConfig } from "./speech/providers/local/config.js";
import type { RequestedSpeechProviders } from "./speech/speech-types.js";
import { AgentManager } from "./agent/agent-manager.js";
import { AgentStorage } from "./agent/agent-storage.js";
import { type TerminalManager } from "../terminal/terminal-manager.js";
import type { AgentClient, AgentProvider } from "./agent/agent-sdk-types.js";
import type { AgentProviderRuntimeSettingsMap } from "./agent/provider-launch-config.js";
import { type AllowedHostsConfig } from "./allowed-hosts.js";
export type SeaworkOpenAIConfig = OpenAiSpeechProviderConfig;
export type SeaworkLocalSpeechConfig = LocalSpeechProviderConfig;
export type SeaworkSpeechConfig = {
    providers: RequestedSpeechProviders;
    local?: SeaworkLocalSpeechConfig;
};
export type DaemonLifecycleIntent = {
    type: "shutdown";
    clientId: string;
    requestId: string;
} | {
    type: "restart";
    clientId: string;
    requestId: string;
    reason?: string;
};
export type SeaworkDaemonConfig = {
    listen: string;
    seaworkHome: string;
    corsAllowedOrigins: string[];
    allowedHosts?: AllowedHostsConfig;
    mcpEnabled?: boolean;
    mcpInjectIntoAgents?: boolean;
    staticDir: string;
    mcpDebug: boolean;
    agentClients: Partial<Record<AgentProvider, AgentClient>>;
    agentStoragePath: string;
    relayEnabled?: boolean;
    relayEndpoint?: string;
    relayPublicEndpoint?: string;
    appBaseUrl?: string;
    openai?: SeaworkOpenAIConfig;
    speech?: SeaworkSpeechConfig;
    voiceLlmProvider?: AgentProvider | null;
    voiceLlmProviderExplicit?: boolean;
    voiceLlmModel?: string | null;
    dictationFinalTimeoutMs?: number;
    downloadTokenTtlMs?: number;
    agentProviderSettings?: AgentProviderRuntimeSettingsMap;
    onLifecycleIntent?: (intent: DaemonLifecycleIntent) => void;
};
export interface SeaworkDaemon {
    config: SeaworkDaemonConfig;
    agentManager: AgentManager;
    agentStorage: AgentStorage;
    terminalManager: TerminalManager;
    start(): Promise<void>;
    stop(): Promise<void>;
    getListenTarget(): ListenTarget | null;
}
export declare function createSeaworkDaemon(config: SeaworkDaemonConfig, rootLogger: Logger): Promise<SeaworkDaemon>;
//# sourceMappingURL=bootstrap.d.ts.map