import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
import { TransactionService } from '../../service/transaction.service';
import { DictionaryService } from '../../service/dictionary.service';
import { TransactionInfoResponse } from '@colijnit/transactionapi/build/model/transaction-info-response.bo';
import { CheckoutOverviewRelationEditComponent } from './checkout-overview-relation-edit/checkout-overview-relation-edit.component';
import { CheckoutOverviewDeliveryEditComponent } from './checkout-overview-delivery-edit/checkout-overview-delivery-edit.component';
import { StepperStepComponent } from '../stepper-step/stepper-step.component';
import { TransactionDialogService } from '../../service/transaction-dialog.service';
import { PaymentComponent } from '../payment/payment.component';
import { StepperComponent } from '../stepper/stepper.component';
import { TransactionKind } from '@colijnit/transactionapi/build/enum/transaction-kind.enum';
import { RelationKind } from '@colijnit/relationapi/build/enum/relation-kind.enum';
import { TransactionRelationService } from '../../service/transaction-relation.service';
import { CheckoutCfgName } from '../../enum/checkout-cfg-name.enum';
import { TransactionHeaderService } from '../core/base/service/transaction-header.service';
import { TransactionScreenConfigurationService } from '../../service/transaction-screen-configuration.service';
export declare class CheckoutComponent implements OnInit, OnDestroy {
    service: TransactionService;
    private _transactionHeaderService;
    private _relationService;
    private _dictionary;
    private _dialogService;
    private _screenConfigurationService;
    readonly transKind: typeof TransactionKind;
    readonly cfgNames: typeof CheckoutCfgName;
    stepper: StepperComponent;
    stepRelation: StepperStepComponent;
    stepDelivery: StepperStepComponent;
    stepOverview: StepperStepComponent;
    stepPay: StepperStepComponent;
    checkoutRelation: CheckoutOverviewRelationEditComponent;
    checkoutDelivery: CheckoutOverviewDeliveryEditComponent;
    checkoutPayment: PaymentComponent;
    newTransaction: boolean;
    /**
     * When set, this is the relation be used for the checkout
     */
    set relationNr(value: number);
    get relationNr(): number;
    set transForServiceFromSalesTransactionLine(value: TransactionInfoResponse);
    get transForServiceFromSalesTransactionLine(): TransactionInfoResponse;
    set lineNrForServiceFromSalesTransactionLine(value: number);
    get lineNrForServiceFromSalesTransactionLine(): number;
    sellerId: number;
    transactionType: TransactionKind;
    showCreateTransactionButton: boolean;
    transactionFinished: EventEmitter<{
        id: number;
        fromCheckout: boolean;
    }>;
    editCartClick: EventEmitter<void>;
    showClass(): boolean;
    get userIsApplicationUser(): boolean;
    transaction: TransactionInfoResponse;
    deliveryAddressNawNr: number;
    invoiceAddressNawNr: number;
    deliveryAddressLocalHash: string;
    invoiceAddressLocalHash: string;
    relationType: RelationKind;
    configLoaded: boolean;
    showYourData: boolean;
    showDelivery: boolean;
    showOverview: boolean;
    emailMandatory: boolean;
    phoneMandatory: boolean;
    showCreateOnFirstPages: boolean;
    private _relationNr;
    private _transNrForServiceFromSalesTransactionLine;
    private _lineNrForServiceFromSalesTransactionLine;
    private _subs;
    constructor(service: TransactionService, _transactionHeaderService: TransactionHeaderService, _relationService: TransactionRelationService, _dictionary: DictionaryService, _dialogService: TransactionDialogService, _screenConfigurationService: TransactionScreenConfigurationService);
    ngOnInit(): void;
    ngOnDestroy(): void;
    handleCreateTransaction(event: MouseEvent): Promise<void>;
    handleRelationValidation(): Promise<boolean>;
    checkForEmailContactOption(): Promise<boolean>;
    checkForPhoneContactOption(): Promise<boolean>;
    checkForAndSetSearchAddress(): void;
    checkAndClearSingleEmptyAddress(): void;
    handleDeliveryValidation(): Promise<boolean>;
    saveRelation(): Promise<boolean>;
    handleSaveDelivery(): Promise<boolean>;
    handleDeliveryAddressChange(nawNr: number): void;
    handleDeliveryLocalHashChange(localHash: string): void;
    handleInvoiceAddressChange(nawNr: number): void;
    handleInvoiceLocalHashChange(localHash: string): void;
    handleTransactionFinished(id: number): void;
}
