import { ConfigService } from '@nestjs/config';
import { AtlasProxyService } from '../atlas-proxy/atlas-proxy.service';
export interface RunBundle {
    jobId: string;
    versionId: string | null;
    code: string;
    env: Record<string, string>;
    fetchAllowlist: string[];
    credential?: {
        keyRef: string;
    } | null;
    limits: {
        timeoutMs: number;
        memoryMb: number;
    };
    overlapPolicy: 'SKIP' | 'QUEUE' | 'ALLOW';
    maxRetries: number;
    input: unknown;
}
export interface CreateRunInput {
    jobId: string;
    trigger: 'SCHEDULE' | 'MANUAL' | 'CATCHUP';
    scheduledFor?: string | null;
    attempt?: number;
}
export interface ReportRunInput {
    runId: string;
    jobId: string;
    status: 'RUNNING' | 'SUCCESS' | 'FAILED' | 'TIMED_OUT' | 'SKIPPED' | 'CANCELLED';
    versionId?: string | null;
    attempt?: number;
    startedAt?: string | null;
    finishedAt?: string | null;
    durationMs?: number | null;
    output?: unknown;
    logs?: string | null;
    errorCode?: string | null;
    errorMessage?: string | null;
    errorStack?: string | null;
}
export declare class ScheduledJobsRuntimeClient {
    private readonly atlasProxy;
    private readonly basePath;
    constructor(atlasProxy: AtlasProxyService, configService: ConfigService);
    getBundle(jobId: string): Promise<RunBundle>;
    createRun(input: CreateRunInput): Promise<{
        runId: string;
    }>;
    reportRun(input: ReportRunInput): Promise<void>;
}
