import { OnDestroy } from "@angular/core";
import { Subject } from "rxjs";
import { EventBus, IDataSource, IEvent, IFilteringOutputs } from "@nova-ui/bits";
import { IDataSourceOutput } from "./types";
import { PizzagnaService } from "../../pizzagna/services/pizzagna.service";
import { IConfigurable, IProperties } from "../../types";
import * as i0 from "@angular/core";
export declare class DataSourceAdapter<T extends IFilteringOutputs = IFilteringOutputs> implements IConfigurable, OnDestroy {
    eventBus: EventBus<IEvent>;
    dataSource: IDataSource<T>;
    protected pizzagnaService: PizzagnaService;
    protected componentId: string;
    protected lastValue: T;
    protected readonly destroy$: Subject<void>;
    protected dataSourceConfiguration: Record<string, any>;
    private propertyPath;
    constructor(eventBus: EventBus<IEvent>, dataSource: IDataSource<T>, pizzagnaService: PizzagnaService);
    protected setupRefreshListener(): void;
    protected handleRefresh(): void;
    protected handleDataSourceUpdate(value: T | IDataSourceOutput<T>): void;
    ngOnDestroy(): void;
    updateConfiguration(properties: IProperties): void;
    protected updateAdapterProperties(properties: IProperties): void;
    protected updateDataSourceProperties(properties: IProperties): void;
    protected updateOutput(value: T | undefined): void;
    protected processOutput(value: T | undefined): T | undefined;
    static ɵfac: i0.ɵɵFactoryDeclaration<DataSourceAdapter<any>, [null, { optional: true; }, null]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DataSourceAdapter<any>>;
}
