import { Observable } from 'rxjs';
import { DataRequestConfig, NgxPuzzleControlChangeNotification, NgxPuzzleDataBindingRequest, NgxPuzzleDataBindingResponse } from 'ngx-puzzle/core/interfaces';
import { SafeAny } from 'ngx-tethys/types';
import * as i0 from "@angular/core";
export declare class NgxPuzzleDataBindingService {
    private mediator;
    private bindingRequestSubject;
    readonly bindingRequest$: Observable<NgxPuzzleDataBindingRequest>;
    private bindingResponseSubject;
    readonly bindingResponse$: Observable<NgxPuzzleDataBindingResponse>;
    private controlChangeSubject;
    readonly controlChange$: Observable<NgxPuzzleControlChangeNotification>;
    private activeRequestSubject;
    readonly activeRequest$: Observable<NgxPuzzleDataBindingRequest | null>;
    private componentDataRequests;
    private bindingDeleteSubject;
    readonly bindingDelete$: Observable<{
        componentId: string;
        seriesIndex: number;
    }>;
    /**
     * 请求数据绑定
     */
    requestBinding(request: NgxPuzzleDataBindingRequest): void;
    /**
     * 响应数据绑定 - 外部传入数据流
     */
    responseBinding(response: NgxPuzzleDataBindingResponse): void;
    /**
     * 通知控件变化 - 内部调用，通知外部
     */
    notifyControlChange(componentId: string, controlId: string, controlFilters: SafeAny): void;
    /**
     * 获取数据流的 hash - 用于对比
     */
    getDataStreamHash(dataStream: Observable<SafeAny>): string;
    /**
     * 删除特定系列的数据绑定
     */
    removeSeriesBinding(componentId: string, seriesIndex: number): void;
    /**
     * 插入系列绑定
     */
    insertSeriesBinding(componentId: string, seriesIndex: number): void;
    /**
     * 获取组件的数据请求配置
     */
    getComponentDataRequest(componentId: string): DataRequestConfig | undefined;
    /**
     * 删除组件的所有数据请求配置
     */
    removeComponentDataRequest(componentId: string): void;
    /**
     * 获取当前激活的请求
     */
    getActiveRequest(): NgxPuzzleDataBindingRequest | null;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgxPuzzleDataBindingService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<NgxPuzzleDataBindingService>;
}
