import { Routes, CanActivateFn, CanActivateChildFn } from '@angular/router'; import * as _angular_forms from '@angular/forms'; import { FormGroup } from '@angular/forms'; import * as _rolatech_angular_services from '@rolatech/angular-services'; import { OnboardingDocumentType, OnboardingApplicationResponse, OnboardingApplicationDetailResponse, OnboardingStatus, OnboardingDocumentResponse, OnboardingIssueResponse, CreateOnboardingApplicationRequest, OnboardingAdminListOptions, onboardingIssueTypeLabel, onboardingDocumentTypeLabel, OnboardingTimelineResponse, OnboardingApplicantType, OnboardingVatMode, onboardingVatModeLabel } from '@rolatech/angular-services'; import * as _angular_core from '@angular/core'; import * as _angular_platform_browser from '@angular/platform-browser'; declare const AGENT_APPLY_SHELL_ROUTES: Routes; declare const AGENT_APPLY_ROUTES: Routes; declare const AGENT_APPLICATION_ROUTES: Routes; declare const AGENT_ONBOARDING_SHELL_ROUTES: Routes; declare const AGENT_ONBOARDING_ROUTES: Routes; declare const ADMIN_ONBOARDING_ROUTES: Routes; type ApplyRouteStep = 'form' | 'review' | 'result'; type ApplySectionKey = 'profile' | 'qualification' | 'financial' | 'banking'; interface ApplyStepCompletion { profile: boolean; qualification: boolean; financial: boolean; banking: boolean; form: boolean; } interface ApplyStepNavItem { label: string; step: ApplyRouteStep; link: string[]; completed: boolean; accessible: boolean; } interface RequiredDocumentSpec { type: OnboardingDocumentType; label: string; helperText?: string; warning?: string; } type ApplyUploadStatus = 'idle' | 'uploading' | 'uploaded' | 'failed'; interface ApplyUploadState { filename: string | null; progress: number; status: ApplyUploadStatus; error: string | null; } type AgentApplyStartResult = { kind: 'created'; application: OnboardingApplicationResponse; } | { kind: 'existing'; applicationId: string; }; declare class AgentApplyFacade { private readonly onboardingService; private readonly fb; private readonly destroyRef; private readonly environment; readonly loading: _angular_core.WritableSignal; readonly saving: _angular_core.WritableSignal; readonly submitting: _angular_core.WritableSignal; readonly error: _angular_core.WritableSignal; readonly lastLocalDraftSavedAt: _angular_core.WritableSignal; readonly application: _angular_core.WritableSignal; readonly detail: _angular_core.WritableSignal; readonly uploadStates: _angular_core.WritableSignal>>; private readonly loadedApplicationId; readonly applicationId: _angular_core.Signal; readonly status: _angular_core.Signal; readonly applicantType: _angular_core.Signal<_rolatech_angular_services.OnboardingApplicantType>; readonly countryCode: _angular_core.Signal; readonly requiresDocuments: _angular_core.Signal; readonly requiresBanking: _angular_core.Signal; readonly isCompany: _angular_core.Signal; readonly isIndividual: _angular_core.Signal; readonly isUkCompany: _angular_core.Signal; readonly isChinaCompany: _angular_core.Signal; readonly hasSubmittedState: _angular_core.Signal; readonly hasGeneralIssue: _angular_core.Signal; readonly documents: _angular_core.Signal; readonly issues: _angular_core.Signal; readonly timeline: _angular_core.Signal<_rolatech_angular_services.OnboardingTimelineResponse[]>; readonly fieldIssueComments: _angular_core.Signal>; readonly documentIssueComments: _angular_core.Signal>>; readonly requiredDocuments: _angular_core.Signal; readonly hasActiveUploads: _angular_core.Signal; readonly completion: _angular_core.Signal; readonly readyForReview: _angular_core.Signal; readonly canSubmit: _angular_core.Signal; readonly profileForm: _angular_forms.FormGroup<{ organizationName: _angular_forms.FormControl; contactName: _angular_forms.FormControl; contactEmail: _angular_forms.FormControl; contactPhone: _angular_forms.FormControl; countryCode: _angular_forms.FormControl; }>; readonly financialForm: _angular_forms.FormGroup<{ vatMode: _angular_forms.FormControl; vatNumber: _angular_forms.FormControl; }>; readonly bankingForm: _angular_forms.FormGroup<{ bankName: _angular_forms.FormControl; accountHolderName: _angular_forms.FormControl; sortCode: _angular_forms.FormControl; accountNumber: _angular_forms.FormControl; }>; constructor(); start(request: CreateOnboardingApplicationRequest): Promise; ensureLoaded(applicationId: string, force?: boolean): Promise; saveProfile(reload?: boolean): Promise; saveFinancial(reload?: boolean): Promise; saveBanking(reload?: boolean): Promise; saveFormProgress(): Promise; uploadDocument(documentType: OnboardingDocumentType, file: File, replacedDocumentId?: string | null): Promise; submit(): Promise; getDocument(documentType: OnboardingDocumentType): OnboardingDocumentResponse | null; getIssueComment(documentType: OnboardingDocumentType): string | null; getFieldIssueComment(fieldKey: string): string | null; isFieldLocked(fieldKey: string): boolean; isDocumentLocked(documentType: OnboardingDocumentType): boolean; canAccessStep(step: ApplyRouteStep): boolean; firstIncompleteStep(): Exclude; uploadState(documentType: OnboardingDocumentType): ApplyUploadState; expectedAccountHolderName(): string; formatSortCode(value: string | null | undefined): string; private setupAutosave; private syncProfileValidators; private syncFinancialRules; private syncBankingRules; private patchForms; private isProfileComplete; private isQualificationComplete; private isFinancialComplete; private isBankingComplete; private accountHolderNameValidator; private normalizeBankingFields; private hasBankingInput; private persistLocalDraft; private restoreLocalDraft; private clearLocalDraft; private localDraftKey; private setUploadState; private uploadToSignedUrl; private defaultCountryCode; private onlyDigits; private resolveActiveApplicationConflict; private isActiveApplicationConflict; private extractActiveApplicationId; private readStringPath; private isActiveApplicationStatus; private toApplicationTimestamp; private toErrorMessage; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } declare class AgentOnboardingFacade { private readonly onboardingService; readonly loading: _angular_core.WritableSignal; readonly saving: _angular_core.WritableSignal; readonly error: _angular_core.WritableSignal; readonly detail: _angular_core.WritableSignal; private readonly loadedApplicationId; readonly status: _angular_core.Signal; readonly issues: _angular_core.Signal; readonly documents: _angular_core.Signal; readonly timeline: _angular_core.Signal<_rolatech_angular_services.OnboardingTimelineResponse[]>; readonly applicationId: _angular_core.Signal; ensureLoaded(applicationId: string, force?: boolean): Promise; reuploadDocument(documentType: OnboardingDocumentType, file: File, replacedDocumentId: string): Promise; resubmit(): Promise; private toErrorMessage; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } declare class AdminOnboardingListFacade { private readonly onboardingAdminService; readonly loading: _angular_core.WritableSignal; readonly error: _angular_core.WritableSignal; readonly filters: _angular_core.WritableSignal; readonly items: _angular_core.WritableSignal; readonly groupedCounts: _angular_core.Signal>; load(query?: Partial): Promise; setStatus(status: OnboardingStatus | undefined): void; setSearch(search: string): void; private toErrorMessage; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } declare class AdminOnboardingDetailFacade { private readonly onboardingAdminService; readonly loading: _angular_core.WritableSignal; readonly error: _angular_core.WritableSignal; readonly detail: _angular_core.WritableSignal; load(applicationId: string): Promise; private toErrorMessage; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } interface OnboardingReviewIssueOption { key: string; label: string; comment: string; requiresComment?: boolean; placeholder?: string; } interface OnboardingReviewIssueDraft { optionKey: string; comment: string; } declare function onboardingFieldIssueOptions(fieldKey: string): OnboardingReviewIssueOption[]; declare function onboardingDocumentIssueOptions(documentType: OnboardingDocumentType): OnboardingReviewIssueOption[]; declare class AdminOnboardingReviewFacade { private readonly onboardingAdminService; readonly loading: _angular_core.WritableSignal; readonly saving: _angular_core.WritableSignal; readonly error: _angular_core.WritableSignal; readonly detail: _angular_core.WritableSignal; readonly reviewComment: _angular_core.WritableSignal; readonly fieldIssueDrafts: _angular_core.WritableSignal>; readonly documentIssueDrafts: _angular_core.WritableSignal>>; readonly passedFields: _angular_core.WritableSignal>; readonly passedDocuments: _angular_core.WritableSignal>>; readonly previewLoading: _angular_core.WritableSignal; readonly previewError: _angular_core.WritableSignal; readonly previewUrl: _angular_core.WritableSignal; readonly previewDocumentId: _angular_core.WritableSignal; readonly requiredDocuments: _angular_core.Signal; readonly existingFieldIssues: _angular_core.Signal>; readonly existingDocumentIssues: _angular_core.Signal>>; readonly issueDrafts: _angular_core.Signal<_rolatech_angular_services.NeedMoreInfoOnboardingIssueRequest[]>; readonly hasPendingIssues: _angular_core.Signal; load(applicationId: string): Promise; addFieldIssue(fieldKey: string, comment: string): void; addDocumentIssue(documentType: OnboardingDocumentType, comment: string): void; removeIssue(index: number): void; setComment(value: string): void; setFieldIssueDraft(fieldKey: string, draft: OnboardingReviewIssueDraft | string | null): void; setDocumentIssueDraft(documentType: OnboardingDocumentType, draft: OnboardingReviewIssueDraft | string | null): void; toggleFieldPassed(fieldKey: string, passed: boolean): void; toggleDocumentPassed(documentType: OnboardingDocumentType, passed: boolean): void; fieldDraft(fieldKey: string): OnboardingReviewIssueDraft | null; documentDraft(documentType: OnboardingDocumentType): OnboardingReviewIssueDraft | null; fieldDraftComment(fieldKey: string): string; documentDraftComment(documentType: OnboardingDocumentType): string; fieldPassed(fieldKey: string): boolean; documentPassed(documentType: OnboardingDocumentType): boolean; startReview(applicationId: string): Promise; requestMoreInfo(applicationId: string): Promise; approve(applicationId: string): Promise; fail(applicationId: string): Promise; openDocumentPreview(documentId: string): Promise; clearDocumentPreview(): void; private clearFieldIssueDraft; private clearDocumentIssueDraft; private buildIssueDrafts; private resetDrafts; private normalizeDraft; private runAction; private toErrorMessage; private toPreviewErrorMessage; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } declare class OnboardingPageShell { readonly title: _angular_core.InputSignal; readonly subtitle: _angular_core.InputSignal; readonly kicker: _angular_core.InputSignal; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class OnboardingStatusBadge { readonly status: _angular_core.InputSignal; readonly label: _angular_core.Signal; readonly badgeClass: _angular_core.Signal<"border-(--rt-border-color) bg-(--rt-raised-background) text-emerald-700" | "border-(--rt-border-color) bg-(--rt-raised-background) text-rose-700" | "border-(--rt-border-color) bg-(--rt-raised-background) text-amber-700" | "border-(--rt-border-color) bg-(--rt-raised-background) text-sky-700" | "border-(--rt-border-color) bg-(--rt-raised-background) text-(--rt-text-secondary)">; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class OnboardingStepNav { readonly steps: _angular_core.InputSignal; readonly activeStep: _angular_core.InputSignal; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class OnboardingDocumentUploader { readonly label: _angular_core.InputSignal; readonly helperText: _angular_core.InputSignal; readonly documentType: _angular_core.InputSignal; readonly document: _angular_core.InputSignal; readonly warning: _angular_core.InputSignal; readonly comment: _angular_core.InputSignal; readonly busy: _angular_core.InputSignal; readonly locked: _angular_core.InputSignal; readonly uploading: _angular_core.InputSignal; readonly progress: _angular_core.InputSignal; readonly pendingFilename: _angular_core.InputSignal; readonly uploadError: _angular_core.InputSignal; readonly acceptedTypes: _angular_core.InputSignal; readonly canPreview: _angular_core.InputSignal; readonly previewBusy: _angular_core.InputSignal; readonly fileSelected: _angular_core.OutputEmitterRef<{ documentType: OnboardingDocumentType; file: File; replacedDocumentId?: string; }>; readonly previewRequested: _angular_core.OutputEmitterRef; readonly buttonLabel: _angular_core.Signal<"Locked" | "Uploading..." | "Replace" | "Upload">; onFileChange(event: Event): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class OnboardingDocumentPreviewDialog { readonly open: _angular_core.InputSignal; readonly title: _angular_core.InputSignal; readonly subtitle: _angular_core.InputSignal; readonly url: _angular_core.InputSignal; readonly loading: _angular_core.InputSignal; readonly error: _angular_core.InputSignal; readonly closeRequested: _angular_core.OutputEmitterRef; private readonly sanitizer; readonly safeUrl: _angular_core.Signal<_angular_platform_browser.SafeResourceUrl | null>; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class OnboardingIssueList { readonly issues: _angular_core.InputSignal; readonly issueTypeLabel: typeof onboardingIssueTypeLabel; readonly documentTypeLabel: typeof onboardingDocumentTypeLabel; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class OnboardingSummaryCard { readonly title: _angular_core.InputSignal; readonly items: _angular_core.InputSignal<{ label: string; value: string | null | undefined; }[]>; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class OnboardingTimeline { readonly items: _angular_core.InputSignal; readonly collapsible: _angular_core.InputSignal; readonly collapseThreshold: _angular_core.InputSignal; readonly expanded: _angular_core.WritableSignal; readonly canCollapse: _angular_core.Signal; readonly panelOpen: _angular_core.Signal; toggle(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class OnboardingTimelineDrawer { readonly open: _angular_core.InputSignal; readonly title: _angular_core.InputSignal; readonly items: _angular_core.InputSignal; readonly zIndex: _angular_core.InputSignal; readonly closeRequested: _angular_core.OutputEmitterRef; requestClose(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class OnboardingReviewIssuesBanner { readonly issues: _angular_core.InputSignal; readonly status: _angular_core.InputSignal; readonly unresolvedCount: _angular_core.Signal; readonly eyebrow: _angular_core.Signal<"More Information Required" | "Review Status">; readonly title: _angular_core.Signal<"Review feedback is blocking resubmission." | "The application is now waiting on reviewer action.">; readonly description: _angular_core.Signal<"Only the flagged fields and documents should be updated. Approved items stay read-only until review is complete." | "You can monitor status updates and any reviewer feedback from this flow.">; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class OnboardingQualificationUploadSection { readonly required: _angular_core.InputSignal; readonly documentSpecs: _angular_core.InputSignal; readonly documents: _angular_core.InputSignal; readonly issueComments: _angular_core.InputSignal>>; readonly lockedDocuments: _angular_core.InputSignal; readonly uploadStates: _angular_core.InputSignal>>; readonly busy: _angular_core.InputSignal; readonly fileSelected: _angular_core.OutputEmitterRef<{ documentType: OnboardingDocumentType; file: File; replacedDocumentId?: string; }>; readonly uploadedRequiredCount: _angular_core.Signal; documentFor(documentType: OnboardingDocumentType): OnboardingDocumentResponse | null; issueCommentFor(documentType: OnboardingDocumentType): string | null; isLocked(documentType: OnboardingDocumentType): boolean; uploadStateFor(documentType: OnboardingDocumentType): ApplyUploadState; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class OnboardingVatSection { readonly form: _angular_core.InputSignal>; readonly applicantType: _angular_core.InputSignal; readonly countryCode: _angular_core.InputSignal; readonly fieldLocks: _angular_core.InputSignal>; readonly vatRateLabel: _angular_core.InputSignal; readonly issueComments: _angular_core.InputSignal>; readonly isIndividual: _angular_core.Signal; readonly currentVatMode: _angular_core.Signal; readonly vatNumberValue: _angular_core.Signal; readonly sectionReadOnly: _angular_core.Signal; readonly vatModeLabel: typeof onboardingVatModeLabel; fieldComment(fieldKey: string): string | null; isFieldLocked(fieldKey: string): boolean; hasError(controlName: string, errorCode: string): boolean; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class OnboardingBankingSection { readonly form: _angular_core.InputSignal>; readonly required: _angular_core.InputSignal; readonly fieldLocks: _angular_core.InputSignal>; readonly expectedAccountHolderName: _angular_core.InputSignal; readonly issueComments: _angular_core.InputSignal>; fieldComment(fieldKey: string): string | null; isFieldLocked(fieldKey: string): boolean; hasError(controlName: string, errorCode: string): boolean; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class OnboardingReviewRow { readonly label: _angular_core.InputSignal; readonly value: _angular_core.InputSignal; readonly helper: _angular_core.InputSignal; readonly existingIssue: _angular_core.InputSignal; readonly issueOptions: _angular_core.InputSignal; readonly draftIssue: _angular_core.InputSignal; readonly passed: _angular_core.InputSignal; readonly busy: _angular_core.InputSignal; readonly actionLabel: _angular_core.InputSignal; readonly actionDisabled: _angular_core.InputSignal; readonly selectedIssueKey: _angular_core.Signal; readonly activeIssueOption: _angular_core.Signal; readonly showCustomComment: _angular_core.Signal; readonly selectedPresetComment: _angular_core.Signal; readonly customCommentPlaceholder: _angular_core.Signal; readonly passButtonClass: _angular_core.Signal<"border-(--rt-border-color) bg-(--rt-raised-background) text-emerald-800" | "border-(--rt-border-color) bg-(--rt-base-background) text-(--rt-text-secondary)">; readonly passedChange: _angular_core.OutputEmitterRef; readonly draftIssueChange: _angular_core.OutputEmitterRef; readonly actionTriggered: _angular_core.OutputEmitterRef; togglePassed(): void; onIssueSelectionChange(event: Event): void; onCustomCommentChange(event: Event): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare const applicationIdGuard: CanActivateFn; declare const applicationLandingGuard: CanActivateFn; declare const applyStepGuard: CanActivateChildFn; export { ADMIN_ONBOARDING_ROUTES, AGENT_APPLICATION_ROUTES, AGENT_APPLY_ROUTES, AGENT_APPLY_SHELL_ROUTES, AGENT_ONBOARDING_ROUTES, AGENT_ONBOARDING_SHELL_ROUTES, AdminOnboardingDetailFacade, AdminOnboardingListFacade, AdminOnboardingReviewFacade, AgentApplyFacade, AgentOnboardingFacade, OnboardingBankingSection, OnboardingDocumentPreviewDialog, OnboardingDocumentUploader, OnboardingIssueList, OnboardingPageShell, OnboardingQualificationUploadSection, OnboardingReviewIssuesBanner, OnboardingReviewRow, OnboardingStatusBadge, OnboardingStepNav, OnboardingSummaryCard, OnboardingTimeline, OnboardingTimelineDrawer, OnboardingVatSection, applicationIdGuard, applicationLandingGuard, applyStepGuard, onboardingDocumentIssueOptions, onboardingFieldIssueOptions }; export type { AgentApplyStartResult, ApplyRouteStep, ApplySectionKey, ApplyStepCompletion, ApplyStepNavItem, ApplyUploadState, ApplyUploadStatus, OnboardingReviewIssueDraft, OnboardingReviewIssueOption, RequiredDocumentSpec };