import { type Ref, type ComputedRef } from 'vue';
import type { Channel } from './useCommunicationChannels';
import type { ContactAttribute } from './useCommunicationAttributes';
type MaybeRef<T> = T | Ref<T> | ComputedRef<T>;
/**
 * Опции для composable управления placeholder пустых каналов.
 */
interface UseCommunicationPlaceholderOptions {
    /** Флаг отображения меню */
    showMenu: Ref<boolean>;
    /** Текущий активный тип канала */
    activeChannelType: Ref<string | null>;
    /** Объект с текстами placeholder для каждого типа канала */
    emptyChannelsPlaceholder: MaybeRef<Record<string, string>>;
    /** Функция получения доступных каналов для типа */
    getAvailableChannels: (channelType: string) => Channel[];
    /** Функция получения типа канала по его ID */
    getChannelTypeFromId: (channelId: string | null | undefined) => string | null;
    /** Реактивный список всех каналов */
    channels: MaybeRef<Channel[]>;
    /** Организованные атрибуты контакта по типам каналов */
    organizedContactAttributes: Ref<Record<string, ContactAttribute[]>>;
}
/**
 * Компонует логику отображения placeholder для пустых каналов.
 */
export declare function useCommunicationPlaceholder({ showMenu, activeChannelType, emptyChannelsPlaceholder, getAvailableChannels, organizedContactAttributes, }: UseCommunicationPlaceholderOptions): {
    emptyChannelsPlaceholderText: ComputedRef<string | null>;
    shouldShowEmptyChannelsPlaceholder: ComputedRef<boolean>;
};
export {};
