import { ElementRef, EventEmitter, Injector } from '@angular/core';
import { BehaviorSubject, Subscription } from 'rxjs';
import { OErrorDialogManager } from '../../services/o-error-dialog-manager.service';
import { OntimizeService } from '../../services/ontimize/ontimize.service';
import { FormValueOptions } from '../../types/form-value-options.type';
import { OContextMenuComponent } from '../contextmenu/o-context-menu.component';
import { OFormComponent } from '../form/o-form.component';
import { OFormDataComponent } from '../o-form-data-component.class';
import * as i0 from "@angular/core";
export declare const DEFAULT_INPUTS_O_FORM_SERVICE_COMPONENT: string[];
export declare const DEFAULT_OUTPUTS_O_FORM_SERVICE_COMPONENT: string[];
export declare class OFormServiceComponent extends OFormDataComponent {
    protected staticData: Array<any>;
    protected entity: string;
    protected service: string;
    protected columns: string;
    valueColumn: string;
    protected valueColumnType: string;
    protected parentKeys: string;
    protected visibleColumns: string;
    protected descriptionColumns: string;
    separator: string;
    protected queryOnInit: boolean;
    protected queryOnBind: boolean;
    protected queryOnEvent: any;
    protected queryMethod: string;
    protected serviceType: string;
    queryWithNullParentKeys: boolean;
    setValueOnValueChange: string;
    queryFallbackFunction: (error: any) => void;
    translate: boolean;
    sort: 'ASC' | 'DESC';
    onSetValueOnValueChange: EventEmitter<object>;
    onDataLoaded: EventEmitter<object>;
    dataArray: any[];
    protected colArray: string[];
    protected visibleColArray: string[];
    descriptionColArray: string[];
    protected dataService: OntimizeService;
    loaderSubscription: Subscription;
    loading: boolean;
    protected querySuscription: Subscription;
    protected cacheQueried: boolean;
    protected _pKeysEquiv: {};
    protected _setValueOnValueChangeEquiv: {};
    protected _formDataSubcribe: any;
    protected _currentIndex: any;
    protected oErrorDialogManager: OErrorDialogManager;
    protected queryOnEventSubscription: Subscription;
    protected subscriptionDataLoad: Subscription;
    delayLoad: number;
    loadingSubject: BehaviorSubject<boolean>;
    oContextMenu: OContextMenuComponent;
    set oContextMenuRef(value: OContextMenuComponent);
    constructor(form: OFormComponent, elRef: ElementRef, injector: Injector);
    initialize(): void;
    destroy(): void;
    protected emitOnValueChange(type: any, newValue: any, oldValue: any): void;
    configureService(): void;
    getAttributesValuesToQuery(columns?: Array<any>): any[];
    queryData(filter?: any): void;
    getDataArray(): any[];
    setDataArray(data: any): void;
    syncDataIndex(queryIfNotFound?: boolean): void;
    protected parseByValueColumnType(val: any): any;
    setValue(val: any, options?: FormValueOptions): void;
    setData(val: any): void;
    getSelectedRecord(): any;
    load(): any;
    onFormControlChange(value: any): void;
    getOptionDescriptionValue(item?: any): string;
    protected sortData(data: any[]): any[];
    refresh(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<OFormServiceComponent, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<OFormServiceComponent, never, never, { "staticData": "static-data"; "entity": "entity"; "service": "service"; "columns": "columns"; "valueColumn": "value-column"; "valueColumnType": "value-column-type"; "parentKeys": "parent-keys"; "visibleColumns": "visible-columns"; "descriptionColumns": "description-columns"; "separator": "separator"; "queryOnInit": "query-on-init"; "queryOnBind": "query-on-bind"; "queryOnEvent": "query-on-event"; "queryMethod": "query-method"; "serviceType": "service-type"; "queryWithNullParentKeys": "query-with-null-parent-keys"; "setValueOnValueChange": "set-value-on-value-change"; "queryFallbackFunction": "query-fallback-function"; "translate": "translate"; "sort": "sort"; }, { "onSetValueOnValueChange": "onSetValueOnValueChange"; "onDataLoaded": "onDataLoaded"; }, never, never, false, never>;
}
