export interface PMAgentProjectInput {
    project: {
        name: string;
        description: string;
        techStack?: string[];
        timeline?: {
            startDate: string;
            endDate: string;
            totalWeeks: number;
        };
        budget?: {
            amount: number;
            currency: string;
        };
    };
    breakdown: {
        epics?: Epic[];
        userStories?: UserStory[];
        tasks?: PMTask[];
        phases?: BuildPhase[];
    };
    myContext: {
        framework: "nextjs" | "react" | "vue" | "angular";
        architecture: "nextjs-app-router" | "nextjs-pages" | "react-spa";
        generateServerActions?: boolean;
        generateRoutes?: boolean;
        withTests?: boolean;
        completeArchitecture?: boolean;
    };
    components?: {
        ui?: ComponentSpec[];
        pages?: PageSpec[];
        api?: ApiSpec[];
    };
    metadata?: {
        generatedBy: string;
        generatedAt: string;
        version: string;
        projectId?: string;
    };
}
export interface PMTask {
    id: string;
    title: string;
    description?: string;
    status?: "todo" | "in_progress" | "review" | "done" | "blocked" | "cancelled";
    priority?: "critical" | "high" | "medium" | "low";
    estimatedHours?: number;
    actualHours?: number;
    dependencies?: string[];
    blockedBy?: string[];
    relatedComponents?: string[];
    relatedFiles?: string[];
    tags?: string[];
    assignee?: string;
    createdAt?: string;
    updatedAt?: string;
    completedAt?: string;
    dueDate?: string;
    notes?: string;
    acceptanceCriteria?: string[];
}
export interface Epic {
    id: string;
    title: string;
    description?: string;
    priority?: "critical" | "high" | "medium" | "low";
    status?: "planned" | "in_progress" | "completed" | "cancelled";
    userStories?: string[];
    tasks?: string[];
    estimatedHours?: number;
    createdAt?: string;
    updatedAt?: string;
}
export interface UserStory {
    id: string;
    title: string;
    description?: string;
    acceptanceCriteria?: string[];
    priority?: "critical" | "high" | "medium" | "low";
    status?: "planned" | "in_progress" | "completed" | "cancelled";
    epicId?: string;
    tasks?: string[];
    estimatedHours?: number;
    createdAt?: string;
    updatedAt?: string;
}
export interface BuildPhase {
    id: string;
    name: string;
    description?: string;
    order: number;
    status?: "planned" | "in_progress" | "completed" | "blocked";
    tasks?: string[];
    deliverables?: string[];
    estimatedHours?: number;
    actualHours?: number;
    startDate?: string;
    endDate?: string;
    dependencies?: string[];
}
export interface ComponentSpec {
    id: string;
    name: string;
    type: "ui" | "form" | "display" | "layout" | "interactive";
    description?: string;
    props?: ComponentProp[];
    dependencies?: string[];
    priority?: "high" | "medium" | "low";
    acceptanceCriteria?: string[];
    mockupUrl?: string;
    designNotes?: string;
}
export interface PageSpec {
    id: string;
    path: string;
    name: string;
    description?: string;
    components: string[];
    layout: "full" | "sidebar" | "centered" | "dashboard";
    authRequired?: boolean;
    dataRequirements?: string[];
    acceptanceCriteria?: string[];
}
export interface ApiSpec {
    id: string;
    path: string;
    method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH";
    name: string;
    description?: string;
    parameters?: ApiParameter[];
    response?: ApiResponse;
    authentication?: boolean;
    rateLimit?: {
        requests: number;
        window: string;
    };
}
export interface ComponentProp {
    name: string;
    type: string;
    required: boolean;
    description?: string;
    defaultValue?: any;
    validation?: string;
}
export interface ApiParameter {
    name: string;
    type: string;
    required: boolean;
    description?: string;
    location: "path" | "query" | "body" | "header";
    validation?: string;
}
export interface ApiResponse {
    type: string;
    description?: string;
    schema?: any;
    examples?: any[];
}
export interface PMAgentOutput {
    projectId: string;
    timestamp: string;
    status: "success" | "error" | "in_progress";
    progress: {
        completedTasks: number;
        totalTasks: number;
        completionPercentage: number;
        currentPhase?: string;
        nextMilestone?: string;
        blockers?: string[];
    };
    generated: {
        components: string[];
        pages: string[];
        apiEndpoints: string[];
        tests: string[];
    };
    errors?: string[];
    suggestions?: string[];
    nextSteps?: string[];
}
export interface ProgressSyncRequest {
    projectId: string;
    syncTimestamp: string;
    includeTasks?: boolean;
    includeComponents?: boolean;
    includeMetrics?: boolean;
}
export interface ProgressSyncResponse {
    projectId: string;
    lastSyncTimestamp: string;
    changes: {
        newTasks?: PMTask[];
        updatedTasks?: PMTask[];
        completedTasks?: string[];
        newComponents?: string[];
        metrics: {
            totalTasks: number;
            completedTasks: number;
            completionPercentage: number;
            estimatedHours: number;
            actualHours: number;
        };
    };
    errors?: string[];
}
export interface PMIntegrationStatus {
    connected: boolean;
    lastSync?: string;
    projectId?: string;
    pendingUpdates?: number;
    errors?: string[];
}
export interface WebhookEvent {
    type: "progress_update" | "task_completed" | "phase_completed" | "error" | "sync_request";
    projectId: string;
    data: any;
    timestamp: string;
}
export interface PMCommandOptions {
    projectId?: string;
    webhookUrl?: string;
    syncInterval?: number;
    verbose?: boolean;
    dryRun?: boolean;
}
export declare class PMIntegrationError extends Error {
    code: string;
    details?: any | undefined;
    constructor(message: string, code: string, details?: any | undefined);
}
export declare const PMIntegrationErrorCodes: {
    readonly INVALID_PLAN_FORMAT: "INVALID_PLAN_FORMAT";
    readonly PLAN_VALIDATION_FAILED: "PLAN_VALIDATION_FAILED";
    readonly PROJECT_CREATION_FAILED: "PROJECT_CREATION_FAILED";
    readonly WORKFLOW_EXECUTION_FAILED: "WORKFLOW_EXECUTION_FAILED";
    readonly SYNC_FAILED: "SYNC_FAILED";
    readonly INVALID_PROJECT_ID: "INVALID_PROJECT_ID";
};
//# sourceMappingURL=pm-integration.d.ts.map