import type { ConfigManager } from '../config/manager.js';
import type { ProviderRegistry } from '../providers/registry.js';
import type { CreateDaemonBatchJobInput, DaemonBatchJob, DaemonBatchRuntimeSnapshot, DaemonBatchTickResult } from './types.js';
export declare class DaemonBatchManager {
    private readonly options;
    private readonly store;
    private data;
    private interval;
    private ticking;
    constructor(options: {
        readonly configManager: Pick<ConfigManager, 'get' | 'getControlPlaneConfigDir'>;
        readonly providerRegistry: Pick<ProviderRegistry, 'getCurrentModel' | 'getForModel' | 'getRegistered' | 'listProviders'>;
        readonly storePath?: string | undefined;
    });
    start(): void;
    dispose(): void;
    describeRuntime(): Promise<DaemonBatchRuntimeSnapshot>;
    createJob(input: CreateDaemonBatchJobInput): Promise<DaemonBatchJob>;
    getJob(jobId: string): Promise<DaemonBatchJob | null>;
    listJobs(limit?: number): Promise<readonly DaemonBatchJob[]>;
    cancelJob(jobId: string): Promise<DaemonBatchJob>;
    tick(options?: {
        readonly forceSubmit?: boolean;
    }): Promise<DaemonBatchTickResult>;
    private runTick;
    private submitQueuedJobs;
    private submitProviderBatch;
    private pollProviderBatches;
    private applyProviderResults;
    private getBatchProvider;
    private requireProviderBatchSupport;
    private load;
    private persist;
    private getMode;
    private getFallback;
    private getQueueBackend;
    private getNumberConfig;
    private getBooleanConfig;
    private getStringConfig;
}
//# sourceMappingURL=manager.d.ts.map