import type { QueueManagerFactory, QueueDriverList } from './types.js';
type GetConfig<T extends any[]> = T extends [] ? {} : T[0];
/**
 * Define config looks like this
 *
 * I will take this
 * {
 *    default: 'somename',
 *    queues: {
 *       somename: {
 *         driver: 'db',
 *         table_name: 'sjkadakjs'
 *      }
 *    }
 * }
 *
 * And return this
 * {
 *    default: 'somename',
 *    queues: {
 *       somename: () => new DatabaseDrive({
 *          table_name: 'sjdasjk',
 *       })
 *    }
 * }
 */
export declare function defineConfig<KnownQueues extends Record<string, {
    [K in keyof QueueDriverList]: {
        driver: K;
    } & GetConfig<Parameters<QueueDriverList[K]>>;
}[keyof QueueDriverList]>>(config: {
    default: keyof KnownQueues;
    queues: KnownQueues;
}): {
    default: keyof KnownQueues;
    queues: { [K in keyof KnownQueues]: QueueManagerFactory; };
};
export {};
