import { OnInit, ChangeDetectorRef } from '@angular/core'; import { PurchaseModel } from './purchase-model'; import { FormControl, FormGroup, FormArray } from '@angular/forms'; import { PurchaseService } from '@schoolbelle/api/purchase'; import { Subscription } from 'rxjs'; import { GroupService, GroupExtraInfo } from '@schoolbelle/api/group'; import { LedgerService } from '@schoolbelle/api/ledger'; import { UserToGroupService } from '@schoolbelle/api/user-to-group'; export declare class PlaceOrderComponent implements OnInit { protected group: GroupService; protected ledger: LedgerService; protected purchase: PurchaseService; protected utg: UserToGroupService; protected cdRef: ChangeDetectorRef; protected locale_id: string; form: FormGroup; taxRate: FormControl; paymentCurrency: FormControl; paymentType: FormControl; toExistingGroup: FormControl; months: FormControl; startsAt: FormControl; expiresAt: FormControl; buyerInfo: FormGroup; purchaseType: FormControl; accountId: FormControl; groupType: FormControl; groupName: FormControl; groupAddress: FormControl; personInCharge: FormGroup; personInChargeEmail: FormControl; accountant: FormGroup; accountantEmail: FormControl; products: FormArray; message: FormControl; subscriptions: Subscription; constructor(group: GroupService, ledger: LedgerService, purchase: PurchaseService, utg: UserToGroupService, cdRef: ChangeDetectorRef, locale_id: string); ngOnInit(): void; extractProdcutParams(type: 'license' | 'sms' | 'crawl'): { productId: any; amount: any; quantity: any; }[]; updateWithProductParams(type: 'license' | 'sms' | 'crawl', list?: { productId: number; quantity?: number; amount?: number; }[]): void; updateGroupRelatedDetails(account_id: string): import("rxjs").Observable<(string | Number | Pick)[]>; /** * * @param params * quantity is a newly added property to * represent a number of monthly subscriptions at the same time(stacking) while amount for a monthly subscription means how many months worth of a subscription will be purchased. * */ addProduct(params?: { type: 'license' | 'sms' | 'crawl' | 'discount'; productId: number; amount?: number; quantity?: number; startsAt?: number; expiresAt?: number; }): FormGroup; createControls(): void; setValidators(): void; createForm(): void; emptyEnteredValues(): void; fillInBasicValues(): void; calculateStartsAt(last_expires_at?: any): Number; preview(): void; orderType: 'school' | 'sms' | 'test' | 'instruction' | 'crawl'; buildParams(model: PurchaseModel): { buyer_name: string; payment_type: "virtualAccount" | "bankTransfer" | "creditCard"; payment_currency: string; items: { product_id: number; amount: number; quantity: number; }[]; type: "sms" | "school" | "crawl" | "test" | "instruction"; extra_data: { group_name: string; group_type: "school.kindergarten" | "school.elementary" | "school.middle" | "school.high" | "school.combined"; group_address: import("@schoolbelle/api/address-input/public_api").AddressInfo; group_head_name: string; person_in_charge_email: string; accountant_email: string; lang: string; }; starts_at: number; expires_at: number; comment: string; }; order(): import("rxjs").Observable<{ uuid: string; purchase_id: number; }>; ngOnDestroy(): void; scrollToWrongInput(): void; }