import type { Db } from "@rudderhq/db";
import type { RudderAppOptions } from "./types.js";
export declare function createPluginHostRuntime(db: Db, opts: RudderAppOptions): {
    loader: import("../services/plugin-loader.helpers.js").PluginLoader;
    scheduler: import("../services/plugin-job-scheduler.js").PluginJobScheduler;
    jobStore: {
        syncJobDeclarations(pluginId: string, declarations: import("@rudderhq/plugin-sdk").PluginJobDeclaration[]): Promise<void>;
        listJobs(pluginId: string, status?: "active" | "paused" | "failed"): Promise<({
            schedule: string;
            id: string;
            status: "active" | "paused" | "failed";
            createdAt: Date;
            updatedAt: Date;
            nextRunAt: Date | null;
            jobKey: string;
            pluginId: string;
            lastRunAt: Date | null;
        })[]>;
        getJobByKey(pluginId: string, jobKey: string): Promise<({
            schedule: string;
            id: string;
            status: "active" | "paused" | "failed";
            createdAt: Date;
            updatedAt: Date;
            nextRunAt: Date | null;
            jobKey: string;
            pluginId: string;
            lastRunAt: Date | null;
        }) | null>;
        getJobById(jobId: string): Promise<({
            schedule: string;
            id: string;
            status: "active" | "paused" | "failed";
            createdAt: Date;
            updatedAt: Date;
            nextRunAt: Date | null;
            jobKey: string;
            pluginId: string;
            lastRunAt: Date | null;
        }) | null>;
        getJobByIdForPlugin(pluginId: string, jobId: string): Promise<({
            schedule: string;
            id: string;
            status: "active" | "paused" | "failed";
            createdAt: Date;
            updatedAt: Date;
            nextRunAt: Date | null;
            jobKey: string;
            pluginId: string;
            lastRunAt: Date | null;
        }) | null>;
        updateJobStatus(jobId: string, status: "active" | "paused" | "failed"): Promise<void>;
        updateRunTimestamps(jobId: string, lastRunAt: Date, nextRunAt: Date | null): Promise<void>;
        deleteAllJobs(pluginId: string): Promise<void>;
        createRun(input: import("../services/plugin-job-store.js").CreateJobRunInput): Promise<{
            error: string | null;
            id: string;
            status: "running" | "cancelled" | "pending" | "failed" | "queued" | "succeeded";
            createdAt: Date;
            startedAt: Date | null;
            finishedAt: Date | null;
            pluginId: string;
            jobId: string;
            trigger: "manual" | "schedule" | "retry";
            durationMs: number | null;
            logs: string[];
        }>;
        markRunning(runId: string): Promise<void>;
        completeRun(runId: string, input: import("../services/plugin-job-store.js").CompleteJobRunInput): Promise<void>;
        getRunById(runId: string): Promise<({
            error: string | null;
            id: string;
            status: "running" | "cancelled" | "pending" | "failed" | "queued" | "succeeded";
            createdAt: Date;
            startedAt: Date | null;
            finishedAt: Date | null;
            pluginId: string;
            jobId: string;
            trigger: "manual" | "schedule" | "retry";
            durationMs: number | null;
            logs: string[];
        }) | null>;
        listRunsByJob(jobId: string, limit?: number): Promise<({
            error: string | null;
            id: string;
            status: "running" | "cancelled" | "pending" | "failed" | "queued" | "succeeded";
            createdAt: Date;
            startedAt: Date | null;
            finishedAt: Date | null;
            pluginId: string;
            jobId: string;
            trigger: "manual" | "schedule" | "retry";
            durationMs: number | null;
            logs: string[];
        })[]>;
        listRunsByPlugin(pluginId: string, status?: import("@rudderhq/plugin-sdk").PluginJobRunStatus, limit?: number): Promise<({
            error: string | null;
            id: string;
            status: "running" | "cancelled" | "pending" | "failed" | "queued" | "succeeded";
            createdAt: Date;
            startedAt: Date | null;
            finishedAt: Date | null;
            pluginId: string;
            jobId: string;
            trigger: "manual" | "schedule" | "retry";
            durationMs: number | null;
            logs: string[];
        })[]>;
    };
    workerManager: import("../services/plugin-worker-manager.js").PluginWorkerManager;
    toolDispatcher: import("../services/plugin-tool-dispatcher.js").PluginToolDispatcher;
    start(): Promise<void>;
    close(): Promise<void>;
};
export type PluginHostRuntime = ReturnType<typeof createPluginHostRuntime>;
//# sourceMappingURL=plugin-host-runtime.d.ts.map