import { CallControlMenuType } from '../task.types';
import type { CallControlButton, ControlVisibility, MEDIA_CHANNEL as MediaChannelType, MediaTypeInfo } from '../task.types';
import { DestinationType, ILogger, ITask } from '@webex/cc-store';
/**
 * Handles toggle hold functionality
 */
export declare const handleToggleHold: (isHeld: boolean, toggleHold: (hold: boolean) => void, setIsHeld: (held: boolean) => void, logger: ILogger) => void;
/**
 * Handles mute toggle functionality with disabled state management
 */
export declare const handleMuteToggle: (toggleMute: () => void, setIsMuteButtonDisabled: (disabled: boolean) => void, logger: ILogger) => void;
/**
 * Handles wrapup call submission
 */
export declare const handleWrapupCall: (selectedWrapupReason: string | null, selectedWrapupId: string | null, wrapupCall: (reason: string, id: string) => void, setSelectedWrapupReason: (reason: string | null) => void, setSelectedWrapupId: (id: string | null) => void, logger: ILogger) => void;
/**
 * Handles wrapup reason change
 */
export declare const handleWrapupChange: (text: string, value: string, setSelectedWrapupReason: (reason: string) => void, setSelectedWrapupId: (id: string) => void, logger?: any) => void;
/**
 * Handles target selection for consult/transfer
 */
export declare const handleTargetSelect: (id: string, name: string, type: DestinationType, agentMenuType: CallControlMenuType | null, consultCall: (id: string, type: DestinationType) => void, transferCall: (id: string, type: DestinationType) => void, setConsultAgentId: (id: string) => void, setConsultAgentName: (name: string) => void, setLastTargetType: (type: DestinationType) => void, logger: ILogger) => void;
/**
 * Gets the media type information
 */
export declare const getMediaType: (mediaType: MediaChannelType, mediaChannel: MediaChannelType, logger?: any) => MediaTypeInfo;
/**
 * Checks if the media type is telephony
 */
export declare const isTelephonyMediaType: (mediaType: MediaChannelType, logger?: any) => boolean;
/**
 * Builds the call control buttons configuration
 */
export declare const buildCallControlButtons: (isMuted: boolean, isHeld: boolean, isRecording: boolean, isMuteButtonDisabled: boolean, currentMediaType: MediaTypeInfo, controlVisibility: ControlVisibility, handleMuteToggleFunc: () => void, handleToggleHoldFunc: () => void, toggleRecording: () => void, endCall: () => void, logger?: any) => CallControlButton[];
/**
 * Filters buttons based on consultation state
 */
export declare const filterButtonsForConsultation: (buttons: CallControlButton[], consultInitiated: boolean, isTelephony: boolean, logger?: any) => CallControlButton[];
/**
 * Updates call state from current task data
 */
export declare const updateCallStateFromTask: (currentTask: ITask, setIsHeld: (held: boolean) => void, setIsRecording: (recording: boolean) => void, logger?: any) => void;
/**
 * Handles close button press for popover components
 */
export declare const handleCloseButtonPress: (setShowAgentMenu: (show: boolean) => void, setAgentMenuType: (type: CallControlMenuType | null) => void, logger?: any) => void;
/**
 * Handles wrapup reason selection change event
 */
export declare const handleWrapupReasonChange: (event: CustomEvent, wrapupCodes: Array<{
    id: string;
    name: string;
}> | undefined, handleWrapupChange: (text: string, value: string, logger?: any) => void, logger?: any) => void;
/**
 * Handles audio element ref assignment
 */
export declare const handleAudioRef: (audioElement: HTMLAudioElement | null, callControlAudio: MediaStream | null, logger?: any) => void;
export declare const onInputDialNumber: (e: any, setValue: any) => void;
export declare const handleButtonPress: (logger: any, onButtonPress: any, value: any) => void;
