/**
 * MCP-backed implementation of CitadelCampaignPort.
 *
 * Routes every method to the corresponding Citadel MCP tool.
 * Caller injects an MCP client (OAuth or M2M auth handled upstream).
 *
 * Schema adaptation notes (mismatches between port contract and Citadel MCP tools):
 *
 * - create_campaign: MCP requires `id` (slug), `status`, and `start_date`.
 *   We default status to "draft" and start_date to today's ISO date.
 * - get_campaign: MCP uses `get_campaign({ id })`, not `get_campaigns({ slug })`.
 * - update_campaign: MCP uses `id` field, not `slug`.
 * - create_campaign_action: MCP uses `campaign_id` + `id` (idempotency key) + `name`.
 *   No `action_type` or `payload` fields — stored in `notes` as JSON for round-trip.
 * - get_campaign_actions: MCP uses `campaign_id`, no `action_type`/`limit`/`offset`.
 *   Action-type and pagination filters applied client-side.
 * - claim_campaign_action / complete_campaign_action / block_campaign_action:
 *   MCP requires `campaign_id` which is NOT part of the port signature.
 *   Callers must embed campaign_id in action_id as "<campaign_id>/<uuid>" for production use.
 *   The adapter splits on "/" — if no slash is present, campaign_id defaults to "".
 * - upsertContact: no direct MCP equivalent; mapped to record_inbound_signal.
 * - updateContactStatus: mapped to promote_contact (pipeline status transition).
 * - bumpEngagementScore: MCP returns { ok, contact } — contact shape cast to ContactRef.
 */
import type { CitadelCampaignPort } from "../ports/citadel-campaign.js";
export interface CitadelCampaignMcpClient {
    callTool(name: string, args: Record<string, unknown>): Promise<unknown>;
}
export declare function createCitadelCampaignMcpAdapter(client: CitadelCampaignMcpClient): CitadelCampaignPort;
//# sourceMappingURL=citadel-campaign-mcp.d.ts.map