/**
 * TypeScript interfaces for the SuggestionCard component
 *
 * These types define the structure for project suggestions and their related data,
 * standardized for use within ClarityKit's agent components ecosystem.
 */
export interface TaskItem {
    id: string;
    name: string;
    description?: string;
    status: 'pending' | 'in_progress' | 'completed' | 'blocked';
    estimatedHours?: number;
    created_at: string;
    updated_at: string;
}
export interface TaskGrouping {
    name: string;
    tasks: TaskItem[];
    reasoning: string;
    estimatedEffort: number;
}
export interface EstimatedDuration {
    value: number;
    unit: 'hours' | 'days' | 'weeks' | 'months';
}
export type Priority = 'low' | 'medium' | 'high' | 'critical';
export type Complexity = 'simple' | 'moderate' | 'complex';
export type SuggestionStatus = 'pending' | 'approved' | 'modified' | 'rejected' | 'deferred';
export interface ProjectSuggestion {
    id: string;
    projectName: string;
    description: string;
    reasoning: string;
    architectReasoning?: string;
    priority: Priority;
    complexity: Complexity;
    status: SuggestionStatus;
    taskGroupings: TaskGrouping[];
    affectedTasks: string[];
    estimatedDuration: EstimatedDuration;
    dependencies: string[];
    createdAt: Date;
}
export interface SuggestionCardProps {
    /** The project suggestion data to display */
    suggestion: ProjectSuggestion;
    /** Whether the card is expanded to show details */
    isExpanded?: boolean;
    /** Loading state for actions */
    isLoading?: boolean;
    /** Error message to display */
    error?: string | null;
    /** Optional CSS class name */
    class?: string;
    /** Card size variant */
    size?: 'sm' | 'md' | 'lg';
    /** Card variant for different contexts */
    variant?: 'default' | 'compact' | 'detailed';
    /** Whether to show action buttons */
    showActions?: boolean;
    /** Custom action configuration */
    actions?: {
        approve?: boolean;
        modify?: boolean;
        reject?: boolean;
        defer?: boolean;
    };
    /** Event handlers for Svelte 5 */
    ontoggle?: (event: SuggestionActionEvent) => void;
    onapprove?: (event: SuggestionActionEvent) => void;
    onmodify?: (event: SuggestionActionEvent) => void;
    onreject?: (event: SuggestionActionEvent) => void;
    ondefer?: (event: SuggestionActionEvent) => void;
}
export interface SuggestionActionEvent {
    suggestionId: string;
    suggestion?: ProjectSuggestion;
    reason?: string;
    until?: Date;
}
export interface ConfirmationDialogConfig {
    isOpen: boolean;
    title: string;
    message: string;
    confirmText: string;
    cancelText: string;
    variant: 'danger' | 'warning' | 'info';
}
//# sourceMappingURL=types.d.ts.map