import { Tool } from '@modelcontextprotocol/sdk/types.js';
import { SearchService } from '../services/search/index.js';
import { IClaudeService } from '../services/claude/IClaudeService.js';
import winston from 'winston';
export interface ContentPlanToolArgs {
    domain: string;
    timeframe?: 'week' | 'month' | 'quarter';
    postCount?: number;
    updateExisting?: boolean;
}
export interface ContentPlanPost {
    title: string;
    description: string;
    keywords: string[];
    category: string;
    estimatedLength: string;
    priority: 'high' | 'medium' | 'low';
    targetAudience: string;
    contentType: 'educational' | 'promotional' | 'thought-leadership' | 'case-study' | 'tutorial' | 'news' | 'opinion';
}
export interface ContentPlanResult {
    domain: string;
    timeframe: 'week' | 'month' | 'quarter';
    postCount: number;
    posts: ContentPlanPost[];
    contentGaps: string[];
    trendingTopics: string[];
    recommendations: string[];
    executionStrategy: string;
    timestamp: string;
    updatedFrom?: string | undefined;
}
export interface ExistingSample {
    title: string;
    content: string;
    url: string;
    categories?: string[];
}
export interface ExistingToneAnalysis {
    formality: string;
    emotion: string;
    style: string;
    overallTone: string;
}
export declare class ContentPlanTool {
    private readonly logger;
    constructor(_searchService: SearchService, logger?: winston.Logger);
    getToolDefinition(): Tool;
    execute(args: ContentPlanToolArgs, claudeService: IClaudeService): Promise<string>;
    private createDomainMatcher;
    private validatePostgenDirectory;
    private getExistingSamples;
    private getExistingToneAnalysis;
    private getLatestContentPlan;
    private generateContentPlan;
    private buildContentPlanPrompt;
    private parseContentPlanResponse;
    private saveContentPlan;
    private formatResponse;
}
//# sourceMappingURL=ContentPlanTool.d.ts.map