import type { RunInDeprovisionTransaction, RunInProvisionTransaction } from './transaction'; import type { DesiredJob, ProvisionSummary } from './types'; import { type Tracer } from '../../observability/tracer'; import type { ScheduledJobOwner } from '../materializer/owner-key'; import type { ScheduledJobOwnerRegistry } from '../reconciliation/owner'; export interface OwnedScope { owner: ScheduledJobOwner; } export interface JobProvisioner { provision(scope: PScope, desired: DesiredJob[]): Promise; deprovision(scope: DScope): Promise<{ removed: number; }>; } export interface JobProvisionerDeps { provisionTransaction: (scope: PScope) => RunInProvisionTransaction; deprovisionTransaction: (scope: DScope) => RunInDeprovisionTransaction; owners: ScheduledJobOwnerRegistry; tracer?: Tracer; } export declare function createJobProvisioner(deps: JobProvisionerDeps): JobProvisioner;