import { EventEmitter, ElementRef, AfterViewInit, OnDestroy, OnInit, OnChanges, SimpleChanges, NgZone } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { LoanSummaryDetails, GoNoGoDecision, SummaryService, BureauData, ProposalDocument } from '../../../models/loan-summary.model'; import { GstQuickSummary, BureauQuickSummary, FinancialQuickSummary } from '../../../models/api-response.model'; import { LoanSummaryService } from '../../../services/loan-summary.service'; import { AiSettingsPanelComponent, AiSettingsPanelData } from '../../shared/ai-settings-panel/ai-settings-panel.component'; import * as i0 from "@angular/core"; type ViewMode = 'carousel' | 'list'; interface SummarySection { id: string; title: string; icon: string; } export declare class LoanSummaryComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy { loanSummaryService: LoanSummaryService; private ngZone; elementRef: ElementRef; private http; loanSummary: LoanSummaryDetails; goNoGoDecision: GoNoGoDecision; selectedServices: SummaryService[]; proposalNo: string; aiGeneratedResponse: string; aiGeneratedBureauResponse: string; aiGeneratedFinancialResponse: string; aiGeneratedGoNoGoResponse: string; hasGstDocument: boolean; hasBureauDocument: boolean; hasFinancialDocument: boolean; documents: ProposalDocument[]; isAiSettingsConfigurable: boolean; gstQuickSummary: GstQuickSummary | null; bureauQuickSummary: BureauQuickSummary | null; financialQuickSummary: FinancialQuickSummary | null; proposalBorrowerInfo: import('../../../models/loan-summary.model').ProposalBorrowerInfo | null; proposalDirectorInfo: import('../../../models/loan-summary.model').ProposalDirectorInfo[]; proposalFacilityInfo: import('../../../models/loan-summary.model').ProposalFacilityInfo[]; backToSelection: EventEmitter; exportReport: EventEmitter; submitDecision: EventEmitter; goNoGoScrolled: EventEmitter; regenerateSummary: EventEmitter; listContainer: ElementRef; aiSettingsPanel: AiSettingsPanelComponent; private scrollListener; viewMode: ViewMode; currentSlideIndex: number; currentSection: SummarySection | null; currentSectionIndex: number; showSectionIndicator: boolean; private indicatorTimeout; sections: SummarySection[]; directorColumns: string[]; facilityColumns: string[]; monthlyReturnsPageIndex: number; filingHistoryPageIndex: number; readonly itemsPerPage = 5; gstViewMode: 'overview' | 'detailed'; gstDetailedMarkdown: string; isLoadingGstDetails: boolean; goNoGoSummaryMarkdown: string; showErrorToast: boolean; errorToastMessage: string; private errorToastTimeout; documentTypes: { id: string; name: string; icon: string; }[]; isSettingsPanelOpen: boolean; availableModels: string[]; selectedModel: string; promptTemplate: string; isEditingPrompt: boolean; isSavingSettings: boolean; savingProgress: number; private savingProgressInterval; showPromptHistory: boolean; promptHistory: Array<{ template: string; timestamp: string; source: 'typed' | 'uploaded'; }>; readonly defaultPromptTemplate = "\nCredit underwriter summary for \n1. Detailed profile and GST report analysis\n2. ITC Utilization pattern\n3. Customer and supplier risk assessment\n4. Fraud & Compliance risk assessment\n5. Concentration Risk Assessment\n6. Financial Health indicators\n7. Underwriter Recommendation\n8. Final Recommendation\nNote: Don't include the document number in the response\n"; private readonly settingsStorageKey; private readonly historyStorageKey; chunkSize: number; chunkOverlap: number; topK: number; chunkOverlapOptions: number[]; availableEmbeddingModels: string[]; selectedEmbeddingModel: string; availableSearchTypes: Array<{ value: string; label: string; }>; selectedSearchType: string; availableVectorStores: Array<{ value: string; label: string; }>; selectedVectorStore: string; private backupSelectedModel; private backupPromptTemplate; private backupChunkSize; private backupChunkOverlap; private backupTopK; private backupEmbeddingModel; private backupSearchType; private backupVectorStore; private backupSelectedGst; private backupSelectedBureau; private backupSelectedFinancial; private backupGstPromptTemplate; private backupBureauPromptTemplate; private backupFinancialPromptTemplate; promptFileInput: ElementRef; gstPromptFileInput: ElementRef; bureauPromptFileInput: ElementRef; financialPromptFileInput: ElementRef; selectedGst: boolean; selectedBureau: boolean; selectedFinancial: boolean; gstPromptTemplate: string; bureauPromptTemplate: string; financialPromptTemplate: string; gstPromptHistory: Array<{ template: string; timestamp: string; source: 'typed' | 'uploaded'; }>; bureauPromptHistory: Array<{ template: string; timestamp: string; source: 'typed' | 'uploaded'; }>; financialPromptHistory: Array<{ template: string; timestamp: string; source: 'typed' | 'uploaded'; }>; showGstPromptHistory: boolean; showBureauPromptHistory: boolean; showFinancialPromptHistory: boolean; private readonly gstHistoryStorageKey; private readonly bureauHistoryStorageKey; private readonly financialHistoryStorageKey; readonly defaultGstPromptTemplate = "\nCredit underwriter summary for \n1. Detailed profile and GST report analysis\n2. ITC Utilization pattern\n3. Customer and supplier risk assessment\n4. Fraud & Compliance risk assessment\n5. Concentration Risk Assessment\n6. Financial Health indicators\n7. Underwriter Recommendation\n8. Final Recommendation\nNote: Don't include the document number in the response\n"; readonly defaultBureauPromptTemplate = "Generate in detailed CIBIL summary along with the profile"; readonly defaultFinancialPromptTemplate = "Generate a comprehensive Financial Statement analysis covering:\n1. Balance Sheet Analysis - Assets, Liabilities, and Equity breakdown\n2. Income Statement Review - Revenue, Expenses, and Profitability trends\n3. Cash Flow Analysis - Operating, Investing, and Financing activities\n4. Key Financial Ratios - Liquidity, Solvency, Profitability, and Efficiency ratios\n5. Working Capital Assessment\n6. Debt Analysis and Coverage Ratios\n7. Year-over-Year Comparison and Trends\n8. Financial Health Indicators and Risk Flags\n9. Recommendations for Credit Assessment\nNote: Focus on data-driven insights relevant for credit underwriting decisions."; bureauViewMode: 'overview' | 'detailed'; bureauDetailedMarkdown: string; isLoadingBureauDetails: boolean; bureauData: BureauData | null; financialViewMode: 'overview' | 'detailed'; financialDetailedMarkdown: string; isLoadingFinancialDetails: boolean; private goNoGoScrolledPast; constructor(loanSummaryService: LoanSummaryService, ngZone: NgZone, elementRef: ElementRef, http: HttpClient); ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; ngAfterViewInit(): void; ngOnDestroy(): void; private setupScrollListener; private removeScrollListener; private onListScroll; onScroll(event: Event): void; onParentScroll(event: Event): void; private checkGoNoGoScroll; private updateCurrentSection; private updateCurrentSectionFromParent; get nextSection(): SummarySection | null; getSectionProgress(): number; get visibleSections(): SummarySection[]; private mapServiceToSection; onViewModeChange(mode: ViewMode): void; onGstViewModeChange(mode: 'overview' | 'detailed'): void; private loadGstDetailedAnalysis; private loadGoNoGoSummary; previousSlide(): void; nextSlide(): void; goToSlide(index: number): void; onBack(): void; getTotalLoanAmount(): number; onExportReport(): void; onSubmitDecision(): void; openDocument(docType: string): void; getDecisionClass(): string; getFactorStatusClass(status: string): string; getCreditScoreClass(score: number): string; getCreditScoreLabel(score: number): string; getCreditScoreColorClass(score: number): string; getCreditScoreBadgeClass(score: number): string; getLoanStatusClass(status: string): string; getDirectorInitials(name: string): string; getRiskLevelClass(riskLevel: string): string; getRiskScoreBarColor(score: number): string; getMetricStatusClass(status: string): string; calculateWeightedScore(factors: any[]): number; getGrowthClass(value: number): string; formatCurrency(amount: number): string; formatNumber(num: number): string; formatLakhs(amount: number): string; getBarHeight(turnover: number): number; getFilingStatusClass(status: string): string; getCombinedMonthlyReturnsData(): Array<{ month: string; turnover: number; totalSales: number; totalPurchases: number; totalTaxPaid: number; }>; getCombinedFilingHistoryData(): Array<{ period: string; returnType: string; filedDate: string; status: 'Filed' | 'Pending' | 'Delayed'; }>; private generateFilingDate; private getRandomFilingStatus; getPaginatedMonthlyReturns(): Array<{ month: string; turnover: number; totalSales: number; totalPurchases: number; totalTaxPaid: number; }>; canGoPrevMonthlyReturns(): boolean; canGoNextMonthlyReturns(): boolean; prevMonthlyReturnsPage(): void; nextMonthlyReturnsPage(): void; getMonthlyReturnsPaginationInfo(): string; getPaginatedFilingHistory(): Array<{ period: string; returnType: string; filedDate: string; status: 'Filed' | 'Pending' | 'Delayed'; }>; canGoPrevFilingHistory(): boolean; canGoNextFilingHistory(): boolean; prevFilingHistoryPage(): void; nextFilingHistoryPage(): void; getFilingHistoryPaginationInfo(): string; openSettingsPanel(): void; closeSettingsPanel(): void; onSettingsPanelClose(): void; onSettingsPanelSaved(settings: AiSettingsPanelData): void; toggleEditPrompt(): void; loadDefaultPromptTemplate(): void; saveAiSettings(): void; private refreshViews; private loadFallbackFiles; loadAiSettingsFromCache(): void; resetAiSettings(): void; formatSliderLabel(value: number): string; private startSavingProgress; private completeSavingProgress; triggerFileUpload(): void; onPromptFileUpload(event: Event): void; toggleGstSelection(): void; toggleBureauSelection(): void; toggleFinancialSelection(): void; isBothSelected(): boolean; isMultipleSelected(): boolean; isOnlyGstSelected(): boolean; isOnlyBureauSelected(): boolean; isOnlyFinancialSelected(): boolean; loadDefaultGstPromptTemplate(): void; loadDefaultBureauPromptTemplate(): void; loadDefaultFinancialPromptTemplate(): void; triggerGstPromptFileUpload(): void; onGstPromptFileUpload(event: Event): void; triggerBureauPromptFileUpload(): void; onBureauPromptFileUpload(event: Event): void; toggleGstPromptHistory(): void; loadGstPromptHistory(): void; addToGstPromptHistory(template: string, source: 'typed' | 'uploaded'): void; selectGstFromHistory(historyItem: { template: string; timestamp: string; source: 'typed' | 'uploaded'; }): void; deleteGstFromHistory(index: number, event: Event): void; toggleBureauPromptHistory(): void; loadBureauPromptHistory(): void; addToBureauPromptHistory(template: string, source: 'typed' | 'uploaded'): void; selectBureauFromHistory(historyItem: { template: string; timestamp: string; source: 'typed' | 'uploaded'; }): void; deleteBureauFromHistory(index: number, event: Event): void; triggerFinancialPromptFileUpload(): void; onFinancialPromptFileUpload(event: Event): void; toggleFinancialPromptHistory(): void; loadFinancialPromptHistory(): void; addToFinancialPromptHistory(template: string, source: 'typed' | 'uploaded'): void; selectFinancialFromHistory(historyItem: { template: string; timestamp: string; source: 'typed' | 'uploaded'; }): void; deleteFinancialFromHistory(index: number, event: Event): void; onBureauViewModeChange(mode: 'overview' | 'detailed'): void; private loadBureauDetailedAnalysis; onFinancialViewModeChange(mode: 'overview' | 'detailed'): void; private loadFinancialDetailedAnalysis; togglePromptHistory(): void; loadPromptHistory(): void; addToPromptHistory(template: string, source: 'typed' | 'uploaded'): void; selectFromHistory(historyItem: { template: string; timestamp: string; source: 'typed' | 'uploaded'; }): void; deleteFromHistory(index: number, event: Event): void; formatHistoryDate(timestamp: string): string; getPromptPreview(template: string): string; /** * Extract error message from various API error response formats. * Backend sends: { error: { code: "...", message: "...", details: {...} } } * HttpClient wraps it in HttpErrorResponse: error.error contains the backend response */ private extractErrorMessage; showErrorToastNotification(message: string): void; hideErrorToast(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } export {};