import { AfterViewInit, EventEmitter, OnDestroy, OnInit } from '@angular/core';
import { TransactionService } from '../../../service/transaction.service';
import { FormMasterService } from '@colijnit/corecomponents_v12';
import { Icon } from '../../../enum/icon.enum';
import { RelationKind } from '@colijnit/relationapi/build/enum/relation-kind.enum';
import { AddressType } from '@colijnit/relationapi/build/enum/address-type.enum';
import { RelationAnyType } from '../../../model/relation-any-type';
import { Address } from '@colijnit/relationapi/build/model/address.bo';
import { RelationNameKind } from '@colijnit/relationapi/build/enum/relation-name-kind.enum';
import { Relation } from '@colijnit/relationapi/build/model/relation.bo';
import { RelationListObject } from '@colijnit/relationapi/build/model/relation-list-object.bo';
import { TransactionRelationService } from '../../../service/transaction-relation.service';
import { TransactionDialogService } from '../../../service/transaction-dialog.service';
import { RelationSuggestionsRequest } from '../../../interface/relation-suggestions-request.interface';
import { CheckoutCfgName } from '../../../enum/checkout-cfg-name.enum';
import { RelationGeneralCfgNames } from '../../../interface/relation-general-cfg-names.interface';
import { RelationAddressCfgNames } from '../../../interface/relation-address-cfg-names.interface';
import { RelationContactDetailsCfgNames } from '../../../interface/relation-contact-details-cfg-names.interface';
import { RelationSuggestionsService } from '../../../service/relation-suggestions.service';
import { TransactionScreenConfigurationService } from '../../../service/transaction-screen-configuration.service';
import { TransactionHeaderService } from '../../core/base/service/transaction-header.service';
import { IconCacheService } from '../../../service/icon-cache.service';
export declare class CheckoutOverviewRelationEditComponent implements OnInit, AfterViewInit, OnDestroy {
    iconCacheService: IconCacheService;
    service: TransactionService;
    transactionHeaderService: TransactionHeaderService;
    private _formMaster;
    private _relationService;
    private _dialogService;
    private _screenConfigService;
    private _suggestionsService;
    readonly cfgNames: typeof CheckoutCfgName;
    readonly relKind: typeof RelationKind;
    readonly icons: typeof Icon;
    readonly addressType: typeof AddressType;
    set viewChildren(children: any);
    set relation(value: RelationAnyType);
    get relation(): RelationAnyType;
    set relationKind(value: RelationKind);
    get relationKind(): RelationKind;
    deliveryAddressNawNr: number;
    invoiceAddressNawNr: number;
    deliveryAddressLocalHash: string;
    invoiceAddressLocalHash: string;
    validSubmit: EventEmitter<void>;
    invalidSubmit: EventEmitter<void>;
    deliveryAddressChange: EventEmitter<number>;
    deliveryLocalHashChange: EventEmitter<string>;
    invoiceAddressChange: EventEmitter<number>;
    invoiceLocalHashChange: EventEmitter<string>;
    relationChange: EventEmitter<RelationAnyType>;
    showClass(): boolean;
    address: Address;
    customerGroup: string;
    vatPayment: boolean;
    vatCode: number;
    customerLanguage: string;
    customerTitle: number;
    relationType: RelationNameKind;
    contactDetailsConfigNames: RelationContactDetailsCfgNames;
    relationGeneralConfigNames: RelationGeneralCfgNames;
    relationAddressConfigNames: RelationAddressCfgNames;
    showContactDetails: boolean;
    showPreferences: boolean;
    showSuggestions: boolean;
    showAddresses: boolean;
    private _relation;
    private _relationKind;
    private _requestForSuggestions;
    private _subs;
    constructor(iconCacheService: IconCacheService, service: TransactionService, transactionHeaderService: TransactionHeaderService, _formMaster: FormMasterService, _relationService: TransactionRelationService, _dialogService: TransactionDialogService, _screenConfigService: TransactionScreenConfigurationService, _suggestionsService: RelationSuggestionsService);
    ngOnInit(): Promise<void>;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    handleInputChange(request: RelationSuggestionsRequest): void;
    onRelationSuggestionClick(relationSuggested: RelationListObject): Promise<void>;
    handleRelationTypeChange(relation: Relation): void;
    emptyRelation(event: MouseEvent): void;
    handleCustomerGroupChange(group: string): void;
    handleCustomerLanguageChange(languageCode: string): void;
    handleCustomerTitleChange(title: number): void;
    handleVatPaymentChange(vat: boolean): void;
    handleVatCodeChange(vatCode: number): void;
    updateRelation(rel: RelationAnyType): void;
    submit(): boolean;
    handleDeliveryAddressChange(nawNr: number): void;
    handleDeliveryLocalHashChange(localHash: string): void;
    checkSameAddress(checked: boolean): void;
    handleRelationNumberChange(relationNumber: string): void;
    private _getFirstActiveAddressOrCreateNew;
    private _getFirstAddress;
    private _getFirstAddressOfType;
    private _createNewAddress;
    private _setCountryNameToAddress;
}
