import { BuddyDetails, ContactServiceQueue, ILogger } from '@webex/cc-store';
/**
 * Interface for button configuration
 */
export interface ButtonConfig {
    key: string;
    icon: string;
    onClick: () => void;
    tooltip: string;
    className: string;
    disabled?: boolean;
    shouldShow: boolean;
}
/**
 * Interface for list item data
 */
export interface ListItemData {
    id: string;
    name: string;
}
/**
 * Creates the consult button configuration array
 */
export declare const createConsultButtons: (isMuted: boolean, isMuteDisabled: boolean, consultCompleted: boolean, isAgentBeingConsulted: boolean, isEndConsultEnabled: boolean, muteUnmute: boolean, onTransfer?: () => void, handleConsultMuteToggle?: () => void, handleEndConsult?: () => void, logger?: any) => ButtonConfig[];
/**
 * Filters buttons that should be visible
 */
export declare const getVisibleButtons: (buttons: ButtonConfig[], logger?: any) => ButtonConfig[];
/**
 * Creates initials from a name string
 */
export declare const createInitials: (name: string, logger?: any) => string;
/**
 * Handles transfer button press with logging
 */
export declare const handleTransferPress: (onTransfer: (() => void) | undefined, logger: ILogger) => void;
/**
 * Handles end consult button press with logging
 */
export declare const handleEndConsultPress: (endConsultCall: (() => void) | undefined, logger: ILogger) => void;
/**
 * Handles mute toggle with disabled state management
 */
export declare const handleMuteToggle: (onToggleConsultMute: (() => void) | undefined, setIsMuteDisabled: (disabled: boolean) => void, logger: ILogger) => void;
/**
 * Gets the consult status text based on completion state
 */
export declare const getConsultStatusText: (consultCompleted: boolean, logger?: any) => string;
/**
 * Handles list item button press with logging
 */
export declare const handleListItemPress: (title: string, onButtonPress: () => void, logger: ILogger) => void;
/**
 * Determines if tabs should be shown based on available data
 */
export declare const shouldShowTabs: (buddyAgents: BuddyDetails[], queues: ContactServiceQueue[], logger?: any) => boolean;
/**
 * Checks if agents list is empty
 */
export declare const isAgentsEmpty: (buddyAgents: BuddyDetails[], logger?: any) => boolean;
/**
 * Checks if queues list is empty
 */
export declare const isQueuesEmpty: (queues: ContactServiceQueue[], logger?: any) => boolean;
/**
 * Handles tab selection with logging
 */
export declare const handleTabSelection: (key: string, setSelectedTab: (tab: string) => void, logger: ILogger) => void;
/**
 * Handles agent selection with logging
 */
export declare const handleAgentSelection: (agentId: string, agentName: string, onAgentSelect: ((agentId: string, agentName: string) => void) | undefined, logger: ILogger) => void;
/**
 * Handles queue selection with logging
 */
export declare const handleQueueSelection: (queueId: string, queueName: string, onQueueSelect: ((queueId: string, queueName: string) => void) | undefined, logger: ILogger) => void;
/**
 * Gets the appropriate empty state message based on context
 */
export declare const getEmptyStateMessage: (selectedTab: string, showTabs: boolean, logger?: any) => string;
/**
 * Creates list item data from buddy agents
 */
export declare const createAgentListData: (buddyAgents: BuddyDetails[], logger?: any) => ListItemData[];
/**
 * Creates list item data from queues
 */
export declare const createQueueListData: (queues: ContactServiceQueue[], logger?: any) => ListItemData[];
/**
 * Creates a timer key based on timestamp
 */
export declare const createTimerKey: (startTimeStamp: number, logger?: any) => string;
/**
 * Handles popover open with logging
 */
export declare const handlePopoverOpen: (menuType: string, setActiveMenu: (menu: string) => void, logger: ILogger) => void;
/**
 * Handles popover close with logging
 */
export declare const handlePopoverClose: (setActiveMenu: (menu: string | null) => void, logger: ILogger) => void;
/**
 * Handles hold toggle with logging
 */
export declare const handleHoldToggle: (toggleHold: (() => void) | undefined, logger: ILogger) => void;
/**
 * Handles wrapup call with logging
 */
export declare const handleWrapupCall: (onWrapupCall: (() => void) | undefined, logger: ILogger) => void;
/**
 * Validates if a menu type is supported
 */
export declare const isValidMenuType: (menuType: string, logger?: any) => boolean;
/**
 * Gets button style class based on state
 */
export declare const getButtonStyleClass: (isActive: boolean, isDisabled: boolean, baseClass?: string, logger?: any) => string;
/**
 * Formats elapsed time for display
 */
export declare const formatElapsedTime: (startTime: number, logger?: any) => string;
/**
 * Checks if an agent is available for selection
 */
export declare const isAgentAvailable: (agent: BuddyDetails, logger?: any) => boolean;
/**
 * Checks if a queue is available for selection
 */
export declare const isQueueAvailable: (queue: ContactServiceQueue, logger?: any) => boolean;
/**
 * Filters available agents
 */
export declare const filterAvailableAgents: (agents: BuddyDetails[], logger?: any) => BuddyDetails[];
/**
 * Filters available queues
 */
export declare const filterAvailableQueues: (queues: ContactServiceQueue[], logger?: any) => ContactServiceQueue[];
/**
 * Debounces a function call
 */
export declare const debounce: <T extends (...args: unknown[]) => unknown>(func: T, wait: number, logger?: any) => ((...args: Parameters<T>) => void);
