import { TeamsCallAgent } from '@azure/communication-calling';
import { TeamsIncomingCall } from '@azure/communication-calling';
import { CallContext } from './CallContext';
import { InternalCallContext } from './InternalCallContext';
/**
 * @public
 * Proxies the {@link @azure/communication-calling#TeamsIncomingCall} interface.
 */
export type TeamsIncomingCallManagement = {
    /**
     * @beta
     * @Remark This attribute doesn't exist on the {@link @azure/communication-calling#TeamsCallAgent} interface.
     * @returns readonly array of {@link DeclarativeTeamsIncomingCall}
     */
    incomingCalls: ReadonlyArray<TeamsIncomingCall>;
};
/**
 * @public
 * `DeclarativeTeamsCallAgent` extends and proxies the {@link @azure/communication-calling#TeamsCallAgent}
 */
export type DeclarativeTeamsCallAgent = TeamsCallAgent & TeamsIncomingCallManagement;
/**
 * Creates a declarative CallAgent by proxying TeamsCallAgent with ProxyTeamsCallAgent which will track state updates by updating
 * the given context.
 *
 * @param callAgent - TeamsCallAgent from SDK
 * @param context - CallContext from StatefulCallClient
 * @param internalContext- InternalCallContext from StatefulCallClient
 */
export declare const teamsCallAgentDeclaratify: (callAgent: TeamsCallAgent, context: CallContext, internalContext: InternalCallContext) => DeclarativeTeamsCallAgent;
//# sourceMappingURL=TeamsCallAgentDeclarative.d.ts.map