import { IndicatorConfig } from '../config/indicator-config.js';
import { PersonaManager } from '../persona/PersonaManager.js';
import { StateChangeNotifier } from './StateChangeNotifier.js';
import { ElementEventDispatcher } from '../events/ElementEventDispatcher.js';
/**
 * SOURCE OF TRUTH for persona indicator formatting. Mirrors the
 * HandlerContext.getPersonaIndicator responsibility so handlers can rely on
 * explicit constructor injection instead of the service locator pattern.
 */
export declare class PersonaIndicatorService {
    private personaManager;
    private indicatorConfig;
    private notifier?;
    private eventDispatcher?;
    private cachedIndicator;
    private cachedPersonaId;
    private readonly boundListener?;
    private readonly boundElementListener?;
    private readonly elementUnsubscribes;
    private fallbackProvider?;
    constructor(personaManager: PersonaManager, indicatorConfig: IndicatorConfig, notifier?: StateChangeNotifier | undefined, eventDispatcher?: ElementEventDispatcher | undefined);
    getPersonaIndicator(): string;
    /**
     * Get the current indicator configuration.
     * Used by ConfigHandler to read current settings before applying updates.
     *
     * @returns Current IndicatorConfig
     */
    getConfig(): IndicatorConfig;
    updateConfig(config: IndicatorConfig): void;
    setFallbackProvider(provider?: () => string): void;
    invalidateCache(): void;
    dispose(): Promise<void>;
    private handlePersonaChange;
    private handleElementEvent;
}
//# sourceMappingURL=PersonaIndicatorService.d.ts.map