import { CallAgent, TeamsCallAgent } from '@azure/communication-calling';
import { CallingHandlers } from "../../../../../calling-component-bindings/src";
import { TeamsCallingHandlers } from "../../../../../calling-component-bindings/src";
import { CallCommon, StatefulCallClient, StatefulDeviceManager } from "../../../../../calling-stateful-client/src";
import { DeepNoiseSuppressionEffectDependency, VideoBackgroundEffectsDependency } from "../../../../../calling-component-bindings/src";
/**
 * @private
 */
export type CallHandlersOf<AgentType extends CallAgent | TeamsCallAgent> = AgentType extends CallAgent ? CallingHandlers : never | TeamsCallingHandlers;
/**
 * @private
 *
 * This is used to create correct handler for generic agent type
 */
export declare function createHandlers<AgentType extends CallAgent | TeamsCallAgent>(callClient: StatefulCallClient, callAgent: AgentType, deviceManager: StatefulDeviceManager | undefined, call: CallCommon | undefined, options?: {
    onResolveVideoBackgroundEffectsDependency?: () => Promise<VideoBackgroundEffectsDependency>;
    onResolveDeepNoiseSuppressionDependency?: () => Promise<DeepNoiseSuppressionEffectDependency>;
}): CallHandlersOf<AgentType>;
//# sourceMappingURL=createHandlers.d.ts.map