import { LinkedInHttpClient } from "./linkedin-http-client.js"; import type { RateLimiter } from "@cesteral/shared"; import { type RequestContext } from "@cesteral/shared"; import { type LinkedInEntityType } from "../../mcp-server/tools/utils/entity-mapping.js"; import type { LinkedInAdAccount, LinkedInCampaignGroup, LinkedInCampaign, LinkedInCreative, LinkedInConversionRule, CreateLinkedInCampaignGroupRequest, CreateLinkedInCampaignRequest, CreateLinkedInCreativeRequest } from "./types.js"; export type { LinkedInAdAccount, LinkedInCampaignGroup, LinkedInCampaign, LinkedInCreative, LinkedInConversionRule, CreateLinkedInCampaignGroupRequest, CreateLinkedInCampaignRequest, CreateLinkedInCreativeRequest, }; interface LinkedInEntityMap { adAccount: LinkedInAdAccount; campaignGroup: LinkedInCampaignGroup; campaign: LinkedInCampaign; creative: LinkedInCreative; conversionRule: LinkedInConversionRule; } type LinkedInCreateEntityInputMap = { adAccount: Record; campaignGroup: CreateLinkedInCampaignGroupRequest; campaign: CreateLinkedInCampaignRequest; creative: CreateLinkedInCreativeRequest; conversionRule: Record; }; type LinkedInUpdateEntityInputMap = { [K in LinkedInEntityType]: Partial & Record; }; export declare class LinkedInService { private readonly rateLimiter; private readonly httpClient; constructor(rateLimiter: RateLimiter, httpClient: LinkedInHttpClient); get client(): LinkedInHttpClient; listEntities(entityType: T, adAccountUrn?: string, start?: number, count?: number, context?: RequestContext): Promise<{ entities: LinkedInEntityMap[T][]; total?: number; start?: number; }>; getEntity(entityType: T, entityUrn: string, context?: RequestContext): Promise; createEntity(entityType: T, data: LinkedInCreateEntityInputMap[T], context?: RequestContext): Promise; updateEntity(entityType: T, entityUrn: string, data: LinkedInUpdateEntityInputMap[T], context?: RequestContext): Promise; deleteEntity(entityType: LinkedInEntityType, entityUrn: string, context?: RequestContext): Promise; listAdAccounts(start?: number, count?: number, context?: RequestContext): Promise<{ accounts: LinkedInAdAccount[]; total?: number; }>; bulkUpdateStatus(entityType: LinkedInEntityType, entityUrns: string[], status: string, context?: RequestContext): Promise<{ results: Array<{ entityUrn: string; success: boolean; error?: string; }>; }>; bulkCreateEntities(entityType: T, items: LinkedInCreateEntityInputMap[T][], context?: RequestContext): Promise<{ results: Array<{ success: boolean; entity?: LinkedInEntityMap[T]; error?: string; }>; }>; bulkUpdateEntities(entityType: T, items: Array<{ entityUrn: string; data: LinkedInUpdateEntityInputMap[T]; }>, context?: RequestContext): Promise<{ results: Array<{ entityUrn: string; success: boolean; error?: string; }>; }>; adjustBids(adjustments: Array<{ campaignUrn: string; bidAmount: Record; }>, context?: RequestContext): Promise<{ results: Array<{ campaignUrn: string; success: boolean; error?: string; }>; }>; searchTargeting(facetType: string, query?: string, limit?: number, context?: RequestContext): Promise; getTargetingOptions(adAccountUrn: string, facetType?: string, context?: RequestContext): Promise; duplicateEntity(entityType: T, entityUrn: string, options?: { newName?: string; }, context?: RequestContext): Promise; getDeliveryForecast(adAccountUrn: string, targetingCriteria: Record, optimizationTargetType?: string, context?: RequestContext): Promise; getAdPreviews(creativeUrn: string, adFormat?: string, context?: RequestContext): Promise; } //# sourceMappingURL=linkedin-service.d.ts.map