import { EventEmitter } from 'events';
export type ChannelType = 'telegram' | 'discord' | 'slack' | 'terminal';
export interface TypingSession {
    channel: ChannelType;
    chatId: string;
    interval: ReturnType<typeof setInterval> | null;
    active: boolean;
    startedAt: number;
}
export interface PresenceState {
    status: 'online' | 'busy' | 'idle' | 'offline';
    lastActivity: number;
    currentTask?: string;
}
export declare class TypingIndicatorManager extends EventEmitter {
    private sessions;
    private presence;
    private intervalMs;
    constructor(intervalMs?: number);
    startTyping(channel: ChannelType, chatId: string): string;
    stopTyping(key: string): void;
    stopAll(): void;
    updatePresence(status: PresenceState['status'], task?: string): void;
    getPresence(): PresenceState;
    getActiveCount(): number;
    dispose(): void;
}
