import { EventEmitter } from '@angular/core';
import { TransactionService } from '../../../service/transaction.service';
import { RelationBaseComponent } from '../relation-base.component';
import { TransactionDialogService } from '../../../service/transaction-dialog.service';
import { RelationNameKind } from '@colijnit/relationapi/build/enum/relation-name-kind.enum';
import { GenderType } from '@colijnit/relationapi/build/enum/gender-type.enum';
import { TransactionRelationService } from '../../../service/transaction-relation.service';
import { RelationKind } from '@colijnit/relationapi/build/enum/relation-kind.enum';
import { RelationGeneralCfgNames } from '../../../interface/relation-general-cfg-names.interface';
import { RelationAnyType } from '../../../model/relation-any-type';
import { RelationContactLink } from '@colijnit/relationapi/build/model/relation-contact-link.bo';
import { IconCacheService } from '../../../service/icon-cache.service';
import { Icon } from '../../../enum/icon.enum';
export declare class RelationGeneralComponent extends RelationBaseComponent {
    transactionService: TransactionService;
    private _dialogService;
    protected relationService: TransactionRelationService;
    iconCacheService: IconCacheService;
    get relationType(): RelationNameKind;
    set relationType(value: RelationNameKind);
    readonly relType: typeof RelationNameKind;
    readonly genderType: typeof GenderType;
    readonly icons: typeof Icon;
    configNames: RelationGeneralCfgNames;
    readonly: boolean;
    relationKind: RelationKind;
    service: boolean;
    contactPerson: RelationContactLink;
    contactPersonChangeEvent: EventEmitter<RelationContactLink>;
    contactPersonInfoOpenEvent: EventEmitter<void>;
    private _relationType;
    showClass(): boolean;
    dateOfBirth: Date;
    constructor(transactionService: TransactionService, _dialogService: TransactionDialogService, relationService: TransactionRelationService, iconCacheService: IconCacheService);
    firstNameChange(firstName: string): void;
    familyNameChange(familyName: string): void;
    changeGenderType(value: GenderType): void;
    typeOfCustomerFullObject(relation: RelationAnyType): boolean;
    contactPersonForId(contactPersonId: number): RelationContactLink;
    handleContactPersonChange(contactPerson: RelationContactLink): Promise<void>;
    protected relationSet(): void;
}
