import { OnDestroy, OnInit } from '@angular/core';
import { BaseDataSource } from '@rxap/data-source';
import { Method } from '@rxap/pattern';
import { ToggleSubject } from '@rxap/rxjs';
import { Observable, ReplaySubject, Subject, Subscription } from 'rxjs';
import * as i0 from "@angular/core";
export type AccordionDataSourceMethod<Data = unknown, Parameters = unknown> = Method<Data, Parameters>;
export declare abstract class AccordionDataSource<Data = unknown, Parameters = unknown> extends BaseDataSource<Data> implements OnInit, OnDestroy {
    _data$: ReplaySubject<Data>;
    readonly loading$: ToggleSubject;
    readonly loading: import("@angular/core").Signal<boolean>;
    readonly hasError: import("@angular/core").Signal<boolean>;
    protected parameters: Parameters | null;
    protected readonly _refresh$: Subject<void>;
    protected abstract readonly method: AccordionDataSourceMethod<Data, Parameters>;
    protected _subscription: Subscription | null;
    get refresh$(): Observable<void>;
    abstract getParameters(): Observable<Parameters> | Promise<Parameters> | Parameters;
    ngOnDestroy(): void;
    ngOnInit(): void;
    refresh(): any;
    protected load(): Promise<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<AccordionDataSource<any, any>, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<AccordionDataSource<any, any>>;
}
