import { type GatewayAdapterHealth } from "./adapters.ts";
export interface GatewayLogger {
    info(message: string): void;
    warn(message: string): void;
    error(message: string): void;
}
export interface RunGatewayOptions {
    cwd?: string;
    agentDir?: string;
    logger?: GatewayLogger;
}
export interface GatewayStatus {
    pid?: number;
    running: boolean;
    pidPath: string;
    statusPath: string;
    configuredConversations: number;
    conversations: Array<{
        id: string;
        name: string;
        service: string;
    }>;
    health?: GatewayHealthSnapshot;
}
export interface GatewayConversationHealth {
    id: string;
    name: string;
    service: string;
    queueLength: number;
    hasActiveJob: boolean;
    recordCount: number;
    sessionCount: number;
    activeSessionKey?: string;
    lastSessionKey?: string;
}
export interface GatewayHealthSnapshot {
    pid: number;
    startedAt: string;
    updatedAt: string;
    cwd: string;
    conversations: GatewayConversationHealth[];
    adapters: GatewayAdapterHealth[];
}
export declare function getGatewayDir(agentDir?: string): string;
export declare function getGatewayPidPath(agentDir?: string): string;
export declare function getGatewayStatusPath(agentDir?: string): string;
export declare function readGatewayPid(agentDir?: string): Promise<number | undefined>;
export declare function readGatewayStatus(options?: {
    agentDir?: string;
}): Promise<GatewayStatus>;
export declare function runGateway(options?: RunGatewayOptions): Promise<void>;
//# sourceMappingURL=runner.d.ts.map