import { ComponentBaseProps, ComponentConfig, DataRequestConfig } from 'ngx-puzzle/core/interfaces';
import { OnDestroy } from '@angular/core';
import { mainTypes } from 'ngx-puzzle/core/types';
import { SafeAny } from 'ngx-tethys/types';
import { Subject } from 'rxjs';
import { ControlsService } from 'ngx-puzzle/core/services/internal/controls.service';
import { PuzzleCanvasMediatorService } from 'ngx-puzzle/core';
import { NgxPuzzleDataBindingService } from 'ngx-puzzle/core/services/external/ngx-puzzle-data-binding.service';
import * as i0 from "@angular/core";
export declare abstract class NgxPuzzleCanvasBaseComponent<TConfigProps extends ComponentBaseProps = ComponentBaseProps, TSubType = string> implements OnDestroy {
    mediator: PuzzleCanvasMediatorService<TConfigProps, TSubType>;
    private refreshTimer;
    private currentControlFilters;
    private currentDataStreamsHash;
    protected controlsService: ControlsService;
    protected dataBindingService: NgxPuzzleDataBindingService;
    protected abstract get dataKey(): mainTypes;
    protected _config: ComponentConfig<TConfigProps, TSubType>;
    protected _isEdit: boolean;
    protected readonly destroy$: Subject<void>;
    protected set isEdit(value: boolean);
    protected get isEdit(): boolean;
    protected constructor(mediator: PuzzleCanvasMediatorService<TConfigProps, TSubType>);
    protected abstract getDefaultOptions(subType: TSubType): SafeAny;
    protected abstract updateData(requestData: DataRequestConfig): void;
    protected setBaseDataRequest(): void;
    protected afterUpdateConfig(): void;
    initConfig(config: ComponentConfig<TConfigProps, TSubType>): void;
    updateProps(props: TConfigProps): void;
    setBaseProps(): void;
    protected setupObservables(): void;
    /**
     * 处理控件值变化 - 只通知外部
     */
    private handleControlValueChange;
    /**
     * 处理数据绑定响应
     */
    private handleBindingResponse;
    /**
     * 带流检查的数据更新
     */
    private updateDataWithStreamCheck;
    /**
     * 检查数据源是否变化（仅比较 url/method/params 的 JSON 序列化结果）
     */
    private hasApiSourcesChanged;
    /**
     * 更新数据源 hash
     */
    private updateApiSourcesHash;
    /**
     * 处理系列绑定删除 - 子类可重写
     */
    protected handleSeriesBindingDelete(seriesIndex: number): void;
    private setupRefreshTimer;
    private handleScheduledRefresh;
    private shouldContinueRefresh;
    private executeRefresh;
    private updateRefreshStats;
    private clearRefreshTimer;
    private getIntervalInMilliseconds;
    restartRefreshTimer(): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgxPuzzleCanvasBaseComponent<any, any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NgxPuzzleCanvasBaseComponent<any, any>, "ng-component", never, {}, {}, never, never, false, never>;
}
