import { DateTime } from 'luxon';
import type { DurationUnit } from 'luxon';
export declare const isObject: <T = any>(value: unknown) => value is Record<string, T>;
export declare const stripUndefinedValuesFromObject: <T extends Record<string, any>>(obj: T) => T;
/**
 * Computes the time remaining until `expiration` from now, expressed in `asUnit` and rounded
 * to a whole number. Returns `undefined` when there is no expiration or it has already elapsed,
 * so callers omit a non-positive TTL instead of sending a negative one that queue brokers reject
 * (e.g. RabbitMQ replies PRECONDITION_FAILED 406). Accepts a luxon DateTime or a JS Date.
 * @param expiration - The expiration instant, or null when the job never expires.
 * @param options - Options bag.
 * @param options.asUnit - Luxon duration unit to express the result in (e.g. 'seconds', 'milliseconds').
 */
export declare const getExpirationIn: (expiration: DateTime | Date | null, { asUnit }: {
    asUnit: DurationUnit;
}) => number | undefined;
