import { TransactionInfo } from '@colijnit/transactionapi/build/model/transaction-info.bo';
import { TransactionKind } from '@colijnit/transactionapi/build/enum/transaction-kind.enum';
import { OrderLineSetInfo } from '@colijnit/transactionapi/build/model/order-line-set-info.bo';
import { DictionaryService } from '../../../../service/dictionary.service';
import { Relation } from '@colijnit/relationapi/build/model/relation.bo';
import { TransactionInfoResponse } from '@colijnit/transactionapi/build/model/transaction-info-response.bo';
import { TransactionServiceInfo } from '@colijnit/transactionapi/build/model/transaction-service-info.bo';
import { TransactionLineInfo } from '@colijnit/transactionapi/build/model/transaction-line-info.bo';
import { TransactionDeliveryCostLineInfo } from '@colijnit/transactionapi/build/model/transaction-delivery-cost-line-info.bo';
import { RelationKind } from '@colijnit/relationapi/build/enum/relation-kind.enum';
import { RelationNameKind } from '@colijnit/relationapi/build/enum/relation-name-kind.enum';
import { LineOperationStatus } from '@colijnit/transactionapi/build/model/line-operation-status.bo';
import { TransactionTotal } from '@colijnit/transactionapi/build/model/transaction-total.bo';
import { RelationAnyType } from '../../../../model/relation-any-type';
import { TransactionRelationService } from '../../../../service/transaction-relation.service';
import { BehaviorSubject } from 'rxjs';
import { TransactionMarginInfo } from '@colijnit/transactionapi/build/model/transaction-margin-info.bo';
import { TransactionService } from '../../../../service/transaction.service';
import { Address } from '@colijnit/relationapi/build/model/address.bo';
import { TransactionEventService } from "../../../../service/transaction-event.service";
export declare class TransactionHeaderService {
    private _transactionService;
    private _relationService;
    private _dictionaryService;
    private _transactionEventService;
    transactionKind: TransactionKind;
    set relation(value: RelationAnyType | Relation);
    get relation(): RelationAnyType | Relation;
    clonedRelation: RelationAnyType | Relation;
    transactionServiceInfo: TransactionServiceInfo;
    transactionLines: TransactionLineInfo[];
    deliveryCostLines: TransactionDeliveryCostLineInfo[];
    relationKind: RelationKind;
    relationType: RelationNameKind;
    lineOperationStatuses: LineOperationStatus[];
    transactionTotal: TransactionTotal;
    transactionMarginInfo: TransactionMarginInfo;
    showingMargins: boolean;
    orderLineSets: OrderLineSetInfo[];
    fullyInvoiced: boolean;
    fullyDelivered: boolean;
    headerTooltipMessages: string[];
    isService: boolean;
    isPurchaseOrder: boolean;
    reservationMode: boolean;
    set readonly(value: boolean);
    get readonly(): boolean;
    canAllLinesBeDelivered: boolean;
    canAllLinesBeInvoiced: boolean;
    hasLinesToDeliver: boolean;
    hasLinesToInvoice: boolean;
    relationSet: BehaviorSubject<boolean>;
    transactionSet: BehaviorSubject<boolean>;
    transactionInfoSet: BehaviorSubject<boolean>;
    transactionTotalSet: BehaviorSubject<boolean>;
    transactionInfoMarginInfoSet: BehaviorSubject<boolean>;
    reservationStateChange: BehaviorSubject<boolean>;
    reservationPopupToggle: BehaviorSubject<boolean>;
    set transaction(value: TransactionInfoResponse);
    get transaction(): TransactionInfoResponse;
    set transactionInfo(value: TransactionInfo);
    get transactionInfo(): TransactionInfo;
    private _transaction;
    private _transactionInfo;
    private _relation;
    private _readOnly;
    constructor(_transactionService: TransactionService, _relationService: TransactionRelationService, _dictionaryService: DictionaryService, _transactionEventService: TransactionEventService);
    getTransactionMargeInfoList(): Promise<void>;
    createCloneRelation(): void;
    private _checkHeaderReadonly;
    private _isSameDay;
    generateAddressLocalHash(address: Address): string;
    private _addHeaderTooltipMessage;
}
