import { ChangeDetectorRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
import { TransactionService } from '../../../service/transaction.service';
import { TransactionKind } from '@colijnit/transactionapi/build/enum/transaction-kind.enum';
import { Icon } from '../../../enum/icon.enum';
import { DictionaryService } from '../../../service/dictionary.service';
import { TransactionTypeCategory } from '../../../enum/transaction-type-category.enum';
import { TransactionEventService } from '../../../service/transaction-event.service';
import { IconCacheService } from '../../../service/icon-cache.service';
import { TransactionImageService } from '../../../service/transaction-image.service';
import { RelationKind } from '@colijnit/relationapi/build/enum/relation-kind.enum';
import { ScreenConfigAdapterComponent } from '@colijnit/corecomponents_v12';
import { TransactionCfgName } from '../../../enum/transaction-cfg-name.enum';
import { TransactionScreenConfigurationService } from '../../../service/transaction-screen-configuration.service';
import { RelationAnyType } from '../../../model/relation-any-type';
export declare abstract class TransactionBaseComponent implements OnInit, OnDestroy, ScreenConfigAdapterComponent {
    transactionEventService: TransactionEventService;
    iconCacheService: IconCacheService;
    screenConfigService: TransactionScreenConfigurationService;
    protected imageService: TransactionImageService;
    protected dictionaryService: DictionaryService;
    protected transactionService: TransactionService;
    protected changeDetector: ChangeDetectorRef;
    readonly cfgNames: typeof TransactionCfgName;
    readonly icons: typeof Icon;
    readonly relKind: typeof RelationKind;
    readonly transKind: typeof TransactionKind;
    readonly category: typeof TransactionTypeCategory;
    cfgName: string;
    set forceWritable(value: boolean);
    get forceWritable(): boolean;
    lockAndSave: boolean;
    expanded: boolean;
    preview: boolean;
    isFirst: boolean;
    set readonly(value: boolean);
    get readonly(): boolean;
    set forceReadonly(value: boolean);
    get forceReadonly(): boolean;
    hidden: boolean;
    showLoader: boolean;
    relationChange: EventEmitter<RelationAnyType>;
    tooltipMessage: string;
    objectConfigName: string;
    required: boolean;
    maxLength: number;
    decimals: number;
    redErrorBackground: boolean;
    committing: boolean;
    protected headerTooltipMessages: string[];
    protected lineTooltipMessages: string[];
    private _baseSubs;
    private _forceWritable;
    private _readonly;
    private _forceReadonly;
    constructor(transactionEventService: TransactionEventService, iconCacheService: IconCacheService, screenConfigService: TransactionScreenConfigurationService, imageService: TransactionImageService, dictionaryService: DictionaryService, transactionService: TransactionService, changeDetector: ChangeDetectorRef);
    ngOnInit(): void;
    ngOnDestroy(): void;
    handleCommit: (value: any) => Promise<boolean>;
    protected lockTransaction(): Promise<boolean>;
    protected commit(value: any): Promise<boolean>;
    protected cancelCommit(): void;
    protected transactionSet(): void;
    protected transactionInfoSet(): void;
    protected relationSet(): void;
    protected transactionTotalSet(): void;
    protected transactionMarginInfoSet(): void;
    protected transactionLineSet(): void;
    protected detectChanges(): void;
    protected prepareTooltipMessage(): void;
    protected rollback(): Promise<boolean>;
}
