import type { Client } from 'discord.js';
import type { Logger, StarboardOptions } from '../types';
import type { GuildConfigManager } from '../core/GuildConfigManager';
import type { ValidationService } from '../services/ValidationService';
import type { MessageSearchService } from '../services/MessageSearchService';
import type { EmbedBuilderService } from '../services/EmbedBuilderService';
/**
 * Services injected into handlers
 */
export interface HandlerDependencies {
    client: Client;
    logger: Logger;
    guildConfig: GuildConfigManager;
    validation: ValidationService;
    messageSearch: MessageSearchService;
    embedBuilder: EmbedBuilderService;
}
/**
 * Abstract base class for event handlers.
 */
export declare abstract class BaseHandler {
    protected readonly client: Client;
    protected readonly logger: Logger;
    protected readonly guildConfig: GuildConfigManager;
    protected readonly validation: ValidationService;
    protected readonly messageSearch: MessageSearchService;
    protected readonly embedBuilder: EmbedBuilderService;
    constructor(dependencies: HandlerDependencies);
    /**
     * Handle the event. Must be implemented by subclasses.
     */
    abstract handle(...args: unknown[]): Promise<void>;
    /**
     * Get options for a specific guild.
     */
    protected getOptionsForGuild(guildId: string): StarboardOptions;
}
//# sourceMappingURL=BaseHandler.d.ts.map