import { ChangeDetectorRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
import { CashRegister } from '@colijnit/transactionapi/build/model/cash-register';
import { PaymentMethod } from '@colijnit/transactionapi/build/model/payment-method.bo';
import { Subscription } from 'rxjs';
import { Icon } from '../../../enum/icon.enum';
import { PaymentViewmodel } from '../../../model/payment.viewmodel';
import { TransactionService } from '../../../service/transaction.service';
import { TransactionPaymentConnectorService } from '../../../service/transaction-payment-connector.service';
import { TransactionEventService } from '../../../service/transaction-event.service';
import { IconCacheService } from '../../../service/icon-cache.service';
import { TransactionPaymentService } from '../../../service/transaction-payment.service';
import { ReportLayoutSelectionPrint } from '@colijnit/mainapi/build/model/report-layout-selection-print.bo';
import { ReportLayoutSelectionEmail } from '@colijnit/mainapi/build/model/report-layout-selection-email.bo';
export declare abstract class TransactionPaymentBaseComponent implements OnInit, OnDestroy {
    protected transactionService: TransactionService;
    protected paymentConnectorService: TransactionPaymentConnectorService;
    protected transactionEventService: TransactionEventService;
    protected changeDetector: ChangeDetectorRef;
    paymentService: TransactionPaymentService;
    iconCacheService: IconCacheService;
    readonly icons: typeof Icon;
    set transId(value: number);
    get transId(): number;
    set transactionUuid(value: string);
    get transactionUuid(): string;
    set branch(value: string);
    get branch(): string;
    set amount(value: number);
    get amount(): number;
    set currencyId(value: number);
    get currencyId(): number;
    set cashRegisterNr(value: number);
    get cashRegisterNr(): number;
    set cashRegisterGroupId(value: number);
    get cashRegisterGroupId(): number;
    set cashRegisterDrawerId(value: number);
    get cashRegisterDrawerId(): number;
    set cashRegisterDrawerNr(value: string);
    get cashRegisterDrawerNr(): string;
    set printerName(value: string);
    get printerName(): string;
    set paymentDate(value: Date);
    get paymentDate(): Date;
    set emailLayout(value: ReportLayoutSelectionEmail);
    get emailLayout(): ReportLayoutSelectionEmail;
    set printerLayout(value: ReportLayoutSelectionPrint);
    get printerLayout(): ReportLayoutSelectionPrint;
    showKeyPad: boolean;
    set remainingPayment(value: boolean);
    get remainingPayment(): boolean;
    private _remainingPayment;
    set currentPaymentMethod(value: PaymentMethod);
    get currentPaymentMethod(): PaymentMethod;
    set doNotFetchAmountToPayForRemaining(value: boolean);
    get doNotFetchAmountToPayForRemaining(): boolean;
    set showPaymentDate(value: boolean);
    get showPaymentDate(): boolean;
    payed: EventEmitter<void>;
    paymentMethodIdx: number;
    cashRegisterIdx: number;
    paymentMethods: PaymentViewmodel[];
    cashRegisters: any[];
    showCashRegisters: boolean;
    useCashRegisters: boolean;
    showLoader: boolean;
    protected subs: Subscription[];
    private _transId;
    private _transactionUuid;
    private _branch;
    private _amount;
    private _currencyId;
    private _cashRegisterNr;
    private _cashRegisterGroupId;
    private _cashRegisterDrawerId;
    private _cashRegisterDrawerNr;
    private _currentPaymentMethod;
    private _doNotFetchAmountToPayForRemaining;
    private _printerName;
    private _paymentDate;
    private _printerLayout;
    private _emailLayout;
    private _showPaymentDate;
    constructor(transactionService: TransactionService, paymentConnectorService: TransactionPaymentConnectorService, transactionEventService: TransactionEventService, changeDetector: ChangeDetectorRef, paymentService: TransactionPaymentService, iconCacheService: IconCacheService);
    ngOnInit(): Promise<void>;
    ngOnDestroy(): void;
    paymentMethodSelected(method: PaymentMethod, index: number): void;
    cashRegisterSelected(cashRegister: CashRegister, index: number): void;
    handlePayment(): Promise<void>;
    handleKeyPadModelChange(model: number): void;
    protected paymentInfoReady(): void;
    protected prepareCashDrawers(group: number): void;
    /**
     *
     * @private
     */
    private _prepareCashRegisters;
    private _getCashRegisters;
    private _getPaymentMethods;
    private _getAndSetDefaultPaymentMethod;
}
