import { OnInit, ChangeDetectorRef, EventEmitter } from '@angular/core'; import { Observable, Subscription } from 'rxjs'; import { FileInfoType, FileService } from '@schoolbelle/api/file'; import { Letter, LetterService } from '@schoolbelle/api/letter'; import { GroupService } from '@schoolbelle/api/group'; import { LetterTargetService } from '@schoolbelle/api/letter-target'; import { LocationService } from '@schoolbelle/common/location'; import { AuthService } from '@schoolbelle/api/auth'; import { pushMethod } from '@schoolbelle/api/notification-push'; import { FormGroup, FormControl } from '@angular/forms'; import { LedgerService } from '@schoolbelle/api/ledger'; import { LetterTracker } from './letter-tracker'; import { BoardService } from '@schoolbelle/api/board'; import { TreeService } from '@schoolbelle/api/group-to-group'; import { SurveyV5Service } from '@schoolbelle/api/survey-v5'; export declare type AttatchmentLimits = { MAX_FILE_LENGTH: number; MAX_VIDEO_LENGTH: number; MAX_IMAGE_SIZE: number; MAX_FILE_SIZE: number; }; export declare const DEFAULT_ATTACHMENT_LIMITS: AttatchmentLimits; export declare enum AttachmentLimitError { MAX_FILE_LENGTH = 0, MAX_VIDEO_LENGTH = 1, MAX_IMAGE_SIZE = 2, MAX_FILE_SIZE = 3 } export declare class LetterWriteAbstractComponent implements OnInit { auth: AuthService; group: GroupService; board: BoardService; protected ledger: LedgerService; protected file: FileService; protected letterService: LetterService; protected target: LetterTargetService; protected tree: TreeService; protected location: LocationService; protected cdRef: ChangeDetectorRef; protected locale_id: string; protected surveyV5: SurveyV5Service; letter: Letter; letterType: string; memberType: 'student' | 'faculty'; sent: EventEmitter; form: FormGroup; title: FormControl; content: FormControl; targets: FormControl; files: FormControl; currentLang: string; usedLangs: string[]; getCurrentLangText(v: string | { [lang: string]: string; }): string; currentMailmergeItemIndex: number; showMailmerge: boolean; method: pushMethod; byteLength: number; subscriptions: Subscription; tracker: LetterTracker; froalaOptions: any; constructor(auth: AuthService, group: GroupService, board: BoardService, ledger: LedgerService, file: FileService, letterService: LetterService, target: LetterTargetService, tree: TreeService, location: LocationService, cdRef: ChangeDetectorRef, locale_id: string, surveyV5: SurveyV5Service); editing: boolean; showExpirationWarning: boolean; expires_at: number; expirationType: 'valid' | 'soon' | 'expired'; calculateTranslations(): { lang: string; title: string; content: string; }[]; ngOnInit(): void; ngOnDestroy(): void; createForm(): void; fillForm(): void; setInitialTargets(): void; fillInDefaultValues(): void; initialize(letter?: any): void; updateFileList(list: (Blob | FileInfoType)[], limits?: Partial): void; uploadFiles(selector_id: string, opt?: { process?: boolean; face_recognition?: boolean; }): Observable; processTargetsBeforeSend(): void; goBack(): void; send(opt?: { process?: boolean; face_recognition?: boolean; queue?: boolean; v5?: boolean; }): Observable; canDeactivate(): boolean; deleteLang(code: string): void; }