/**
 * @license
 * Copyright 2025 Google LLC
 * SPDX-License-Identifier: Apache-2.0
 */
/**
 * EmojiFilter - Filters emojis from text content based on configuration
 * Implementation stub based on pseudocode lines 01-186
 */
/**
 * Emoji filter modes
 */
export type EmojiFilterMode = 'allowed' | 'auto' | 'warn' | 'error';
/**
 * Configuration for emoji filtering behavior
 * @requirement REQ-004.1 - Silent filtering in auto mode
 */
export interface FilterConfiguration {
    mode: EmojiFilterMode;
}
/**
 * Result of emoji filtering operation
 */
export interface FilterResult {
    filtered: string | object | null;
    emojiDetected: boolean;
    blocked: boolean;
    error?: string;
    systemFeedback?: string;
}
/**
 * EmojiFilter class for filtering emojis from various content types
 * @pseudocode lines 01-186
 */
export declare class EmojiFilter {
    private patterns;
    private conversions;
    private buffer;
    private config;
    /**
     * Creates new EmojiFilter instance
     * @param config Filter configuration
     * @pseudocode lines 07-12
     */
    constructor(config: FilterConfiguration);
    /**
     * Filters text content for emojis
     * @param text Text to filter
     * @returns Filter result with processed text
     * @pseudocode lines 14-45
     */
    filterText(text: string): FilterResult;
    /**
     * Filters streaming text chunks for emojis
     * @param chunk Text chunk to filter
     * @returns Filter result with processed chunk
     * @pseudocode lines 47-60
     */
    filterStreamChunk(chunk: string): FilterResult;
    /**
     * Filters tool arguments for emojis
     * @param args Tool arguments object
     * @returns Filter result with processed arguments
     * @pseudocode lines 62-95
     */
    filterToolArgs(args: object): FilterResult;
    /**
     * Filters file content for emojis
     * @param content File content to filter
     * @param toolName Name of the tool writing the file
     * @returns Filter result with processed content
     * @pseudocode lines 97-128
     */
    filterFileContent(content: string, toolName: string): FilterResult;
    /**
     * Flushes remaining buffered content
     * @returns Remaining filtered content
     * @pseudocode lines 130-138
     */
    flushBuffer(): string;
    /**
     * Detects if text contains emojis
     * @param text Text to check
     * @returns True if emojis detected
     * @pseudocode lines 140-147
     */
    private detectEmojis;
    /**
     * Applies emoji-to-text conversions
     * @param text Text to convert
     * @returns Text with emojis converted
     * @pseudocode lines 149-155
     */
    private applyConversions;
    /**
     * Removes decorative emojis from text
     * @param text Text to clean
     * @returns Text with decorative emojis removed
     * @pseudocode lines 157-163
     */
    private removeDecorativeEmojis;
    /**
     * Finds last safe boundary to avoid splitting multi-byte characters
     * @param text Text to analyze
     * @returns Safe boundary position or -1 if none found
     * @pseudocode lines 165-180
     */
    private findLastSafeBoundary;
    /**
     * Compiles emoji detection patterns
     * @returns Array of compiled regex patterns
     * @pseudocode line 09
     */
    private compileEmojiPatterns;
    /**
     * Loads emoji-to-text conversion map
     * @returns Map of emoji conversions
     * @pseudocode line 10
     */
    private loadConversionMap;
    /**
     * Recursively filters emojis from object properties
     * @param obj Object to filter
     * @returns Filtered object
     */
    private deepFilterObject;
}
