import { ConfigProvider } from '@adonisjs/core/types';
import { Channel } from './channel.js';
import { AKEvent } from './event.js';
import { AKEventUserServiceClass } from './types.js';
export type AKEventConfig<UserServiceClass extends AKEventUserServiceClass, EventType extends AKEvent<any>, KnownChannels extends Record<string, Channel<EventType>>> = {
    userServiceClass: ConfigProvider<UserServiceClass>;
    eventTypesPreferenciablePerUser: {
        email: string[];
        pushNotification: string[];
    };
    channels: KnownChannels;
};
export declare function defineConfig<UserServiceClass extends AKEventUserServiceClass, EventType extends AKEvent<any>, KnownChannels extends Record<string, Channel<EventType>>>(config: AKEventConfig<UserServiceClass, EventType, KnownChannels>): AKEventConfig<UserServiceClass, EventType, KnownChannels>;
