import { Ref } from 'vue';
interface UseFeedMessageVisibilityOptions<T = unknown> {
    feedRef: Ref<HTMLElement | null>;
    trackingObjects: Ref<NodeListOf<Element> | undefined>;
    chatAppId: string;
    /** По id элемента (msg-{messageId} или msg-mid-{index}) возвращает сообщение — без JSON в DOM */
    getMessageById: (id: string) => T | undefined;
    onMessageVisible: (message: T) => void;
}
/**
 * Композабл для отслеживания видимости сообщений с помощью Intersection Observer
 */
export declare function useFeedMessageVisibility<T = unknown>({ trackingObjects, chatAppId, getMessageById, onMessageVisible, }: UseFeedMessageVisibilityOptions<T>): {
    observer: IntersectionObserver;
    observeMessages: () => void;
    restartObserving: () => void;
};
export {};
