import { AfterViewInit, ChangeDetectorRef, EventEmitter, OnDestroy, QueryList } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { SdSideDrawer } from '@sd-angular/core/components/side-drawer';
import { SdTable, SdTableOption } from '@sd-angular/core/components/table';
import { SdUploadFile } from '@sd-angular/core/components/upload-file';
import { SdSearch } from '@sd-angular/core/forms';
import { Subject } from 'rxjs';
import { SdFormGenericTableColumn, SdFormGenericSelectionItem, SdFormGenericTable } from '../../../../../../models';
import { FormGenericService } from '../../../../../../services';
import * as i0 from "@angular/core";
export declare class TableComponent implements AfterViewInit, OnDestroy {
    #private;
    private ref;
    private readonly formGenericService;
    uploadFiles?: QueryList<SdUploadFile>;
    table?: SdTable;
    sideDrawer?: SdSideDrawer;
    setVariables: Subject<{
        key: string;
        value: any;
    }>;
    form: FormGroup<{}>;
    component?: SdFormGenericTable;
    col: string;
    set _component(val: SdFormGenericTable);
    required: boolean;
    set _required(val: boolean | '');
    viewed: boolean;
    set _viewed(val: boolean | '' | undefined | null);
    model: any[];
    set _model(val: any[] | undefined | null);
    modelChange: EventEmitter<any[]>;
    tableOption?: SdTableOption;
    row: any;
    columnValues: Record<string, SdFormGenericSelectionItem[] | SdSearch>;
    formRenderColumn: Record<string, SdFormGenericTableColumn>;
    fileKeys: string[];
    imageKeys: string[];
    constructor(ref: ChangeDetectorRef, formGenericService: FormGenericService);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    onDetail: (row?: any) => void;
    onCancel: () => void;
    onAccept: (addable?: boolean) => void;
    onFileUploadChange(item: any, key: string, newValue: any): void;
    getArgs(key: string): Record<string, any> | undefined;
    upload: () => Promise<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<TableComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TableComponent, "lib-table", never, { "setVariables": { "alias": "setVariables"; "required": true; }; "form": { "alias": "form"; "required": false; }; "_component": { "alias": "component"; "required": true; }; "_required": { "alias": "required"; "required": false; }; "_viewed": { "alias": "viewed"; "required": false; }; "_model": { "alias": "model"; "required": false; }; }, { "modelChange": "modelChange"; }, never, never, true, never>;
}
