import type { Snowflake, StarboardChannel, MessageSearchResult, MessageSearchService as IMessageSearchService } from '../types';
import { Logger } from '../utils/Logger';
/**
 * Service for searching starboard messages.
 *
 * IMPROVEMENT: Implements paginated search to overcome the 100-message limit.
 * The original code only searched the last 100 messages which caused issues
 * when the starboard channel grew beyond 100 messages.
 */
export declare class MessageSearchService implements IMessageSearchService {
    private readonly logger;
    constructor(logger: Logger);
    /**
     * Find an existing starboard message for a given original message.
     *
     * IMPROVEMENT: Uses pagination to search beyond 100 messages.
     * Also uses message ID in embed footer for reliable matching
     * instead of fragile URL string comparison.
     *
     * @param channel - The starboard channel to search in
     * @param originalMessageId - The ID of the original message
     * @param maxSearchDepth - Maximum number of messages to search (default: 500)
     */
    findStarboardMessage(channel: StarboardChannel, originalMessageId: Snowflake, maxSearchDepth?: number): Promise<MessageSearchResult>;
    /**
     * Find message by ID stored in embed footer.
     * This is the preferred method as it's more reliable.
     */
    private findByFooterId;
    /**
     * Find message by URL in embed field.
     * Fallback for backward compatibility with old starboard messages.
     */
    private findByMessageUrl;
    /**
     * Delete a starboard message by its ID.
     */
    deleteStarboardMessage(channel: StarboardChannel, messageId: Snowflake): Promise<boolean>;
}
//# sourceMappingURL=MessageSearchService.d.ts.map