import { EventEmitter } from "events";
import { PMAgentProjectInput, PMAgentOutput, ProgressSyncRequest, ProgressSyncResponse, PMIntegrationStatus } from "../types/pm-integration";
export interface PMIntegrationConfig {
    pmEndpoint?: string;
    apiKey?: string;
    projectId?: string;
    webhookUrl?: string;
    syncInterval?: number;
    retryAttempts?: number;
    timeout?: number;
    enableRealTimeSync?: boolean;
}
export interface WebhookEvent {
    type: "progress_update" | "task_completed" | "phase_completed" | "error" | "sync_request";
    projectId: string;
    data: any;
    timestamp: string;
}
export declare class PMIntegrationService extends EventEmitter {
    private config;
    private isConnected;
    private lastSyncTimestamp;
    private syncTimer?;
    constructor(config?: PMIntegrationConfig);
    private setupEventHandlers;
    initialize(): Promise<void>;
    private testConnection;
    importProjectPlan(planPath: string): Promise<PMAgentProjectInput>;
    exportProgress(output: PMAgentOutput, webhookUrl?: string): Promise<void>;
    syncProgress(request: ProgressSyncRequest): Promise<ProgressSyncResponse>;
    private sendWebhook;
    private makeAuthenticatedRequest;
    private getAuthHeaders;
    private validateProjectPlan;
    private startSyncTimer;
    private handleWebhookEvent;
    private handleSyncRequest;
    private handleRemoteError;
    private handleSyncError;
    private handleConnectionLost;
    getStatus(): PMIntegrationStatus;
    updateConfig(newConfig: Partial<PMIntegrationConfig>): void;
    disconnect(): void;
    static fromConfigFile(configPath: string): PMIntegrationService;
}
//# sourceMappingURL=PMIntegrationService.d.ts.map