import { ElementRef, EventEmitter, Injector, OnChanges, SimpleChange } from '@angular/core';
import { BehaviorSubject, Subscription } from 'rxjs';
import { ServiceResponse } from '../../interfaces/service-response.interface';
import { OErrorDialogManager } from '../../services/o-error-dialog-manager.service';
import { OConfigureServiceArgs } from '../../types/configure-service-args.type';
import { FormValueOptions } from '../../types/form-value-options.type';
import { OQueryDataArgs } from '../../types/query-data-args.type';
import { OQueryParams } from '../../types/query-params.type';
import { OContextMenuComponent } from '../contextmenu/o-context-menu.component';
import { OFormDataComponent } from '../o-form-data-component.class';
import { BaseService } from '../../services/base-service.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 implements OnChanges {
    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;
    initialFilterFunction?: () => {
        [key: string]: any;
    };
    translate: boolean;
    sort: 'ASC' | 'DESC';
    onSetValueOnValueChange: EventEmitter<object>;
    onDataLoaded: EventEmitter<object>;
    dataArray: any[];
    protected colArray: string[];
    protected visibleColArray: string[];
    descriptionColArray: string[];
    protected dataService: BaseService<ServiceResponse>;
    loaderSubscription: Subscription;
    loading: boolean;
    protected querySubscription: 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;
    queryArguments: any;
    set oContextMenuRef(value: OContextMenuComponent);
    protected configureServiceArgs: OConfigureServiceArgs;
    constructor(elRef: ElementRef, injector: Injector);
    initialize(): void;
    protected canSetStaticData(staticData: any): boolean;
    ngOnChanges(changes: {
        [propName: string]: SimpleChange;
    }): void;
    destroy(): void;
    protected emitOnValueChange(type: any, newValue: any, oldValue: any): void;
    configureService(): void;
    getAttributesValuesToQuery(columns?: Array<any>): any[];
    queryData(filter?: any): void;
    getQueryArguments(filter: object, ovrrArgs?: OQueryDataArgs): OQueryParams;
    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": { "alias": "static-data"; "required": false; }; "entity": { "alias": "entity"; "required": false; }; "service": { "alias": "service"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "valueColumn": { "alias": "value-column"; "required": false; }; "valueColumnType": { "alias": "value-column-type"; "required": false; }; "parentKeys": { "alias": "parent-keys"; "required": false; }; "visibleColumns": { "alias": "visible-columns"; "required": false; }; "descriptionColumns": { "alias": "description-columns"; "required": false; }; "separator": { "alias": "separator"; "required": false; }; "queryOnInit": { "alias": "query-on-init"; "required": false; }; "queryOnBind": { "alias": "query-on-bind"; "required": false; }; "queryOnEvent": { "alias": "query-on-event"; "required": false; }; "queryMethod": { "alias": "query-method"; "required": false; }; "serviceType": { "alias": "service-type"; "required": false; }; "queryWithNullParentKeys": { "alias": "query-with-null-parent-keys"; "required": false; }; "setValueOnValueChange": { "alias": "set-value-on-value-change"; "required": false; }; "queryFallbackFunction": { "alias": "query-fallback-function"; "required": false; }; "translate": { "alias": "translate"; "required": false; }; "sort": { "alias": "sort"; "required": false; }; "configureServiceArgs": { "alias": "configure-service-args"; "required": false; }; "initialFilterFunction": { "alias": "initial-filter-function"; "required": false; }; }, { "onSetValueOnValueChange": "onSetValueOnValueChange"; "onDataLoaded": "onDataLoaded"; }, never, never, false, never>;
}
