import { JobRegistry, QueueBatch, JobEnvelope, DispatchOpts } from './index.js';
import '@standard-schema/spec';

/** CF `Queue` binding — structural subset used by this adapter. */
type QueueBinding<T = unknown> = {
    send(message: T, options?: {
        contentType?: string;
        delaySeconds?: number;
    }): Promise<void>;
};
/** Name → binding map for many named queues. */
type QueueBindings = Record<string, QueueBinding>;
declare function enqueue<T>(queue: QueueBinding<T>, body: T): Promise<void>;
declare function resolveQueue(bindings: QueueBindings, name: string): QueueBinding;
declare function consume<E>(registry: JobRegistry<E>, batch: QueueBatch<JobEnvelope>, env: E, opts?: DispatchOpts<E>): Promise<void>;

export { type QueueBinding, type QueueBindings, consume, enqueue, resolveQueue };
