import { Uniqueness } from './uniqueness.js';
import { JobData } from '../schema/job-data.js';

/**
 * Configuration for alive job uniqueness strategy.
 */
interface AliveJobConfig {
    /** The type of uniqueness strategy. */
    type: "alive-job";
    /** Whether to include job arguments in the digest. */
    withArgs?: boolean;
}
/**
 * Uniqueness strategy for jobs that are still alive (waiting, claimed, or running).
 */
declare class AliveJobUniqueness implements Uniqueness {
    config: AliveJobConfig;
    /**
     * Creates a new AliveJobUniqueness instance.
     * @param config The alive job uniqueness configuration.
     */
    constructor(config: AliveJobConfig);
    /**
     * Computes a digest for the job data if the job is in an alive state.
     * @param jobData The job data to compute the digest for.
     * @returns The digest string or null if not alive.
     */
    digest(jobData: JobData): string | null;
}

export { AliveJobUniqueness };
export type { AliveJobConfig };
