import { AfterContentInit, EventEmitter, OnInit } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { MatDialog, MatSnackBar } from '@angular/material';
import { BillBackfaceService, ElementRoute, IField, RouteElementService, ITableCheckResult } from 'dbweb-core';
import { Observable } from 'rxjs';
import { TabsService } from '../home/tabs.service';
import { BillCloneBackfaceService } from './bill-clone-backface.service';
interface Record {
    Main: {
        [key: string]: any;
    };
    Child?: {
        [key: string]: {
            [key: string]: any;
        }[];
    };
}
export interface BeforeSaveParam {
    record: {
        [key: string]: any;
    } | Record;
    tag?: any;
}
export declare class BillComponent implements OnInit, AfterContentInit {
    rele: RouteElementService;
    private billBackface;
    private tabs;
    dialog: MatDialog;
    private billCloneService;
    private snackBar;
    onBeforeSave: (selft: BillComponent) => Observable<BeforeSaveParam>;
    init: EventEmitter<any>;
    element: ElementRoute;
    private oldData;
    private operate;
    allowClone: boolean;
    checkResults: ITableCheckResult[];
    fieldMap: {
        [key: string]: IField;
    };
    fields: IField[];
    private useTypeRecord;
    private signKeyValues;
    formGroup?: FormGroup;
    typeRecord: {
        [key: string]: any;
    };
    record: Record;
    error: string;
    constructor(rele: RouteElementService, billBackface: BillBackfaceService, tabs: TabsService, dialog: MatDialog, billCloneService: BillCloneBackfaceService, snackBar: MatSnackBar);
    private fixShowDate;
    ngAfterContentInit(): void;
    showErrorMessage(mes: string): void;
    ngOnInit(): void;
    isAdd(): boolean;
    isEdit(): boolean;
    isDelete(): boolean;
    isBrowse(): boolean;
    close(): void;
    private fixDate;
    getFormGroupValueAsType(): {
        [key: string]: any;
    };
    save(): void;
    delete(): import("rxjs").Subscription;
    clone(): void;
}
export {};
