import { OnInit } from '@angular/core';
import { Method } from '@rxap/pattern';
import { ToggleSubject } from '@rxap/rxjs';
import { Observable, OperatorFunction, ReplaySubject, TeardownLogic } from 'rxjs';
import { BaseDataSource, BaseDataSourceMetadata, BaseDataSourceViewer } from './base.data-source';
import * as i0 from "@angular/core";
export declare class MethodDataSource<Data, Parameters = any> extends BaseDataSource<Data, BaseDataSourceMetadata, (BaseDataSourceViewer & Parameters) | BaseDataSourceViewer<Parameters>> implements OnInit {
    protected readonly method: Method<Data, Parameters>;
    protected readonly withoutParameters: boolean;
    protected readonly _data$: ReplaySubject<Data>;
    readonly loading$: ToggleSubject;
    private readonly _refresh;
    constructor(method: Method<Data, Parameters>, withoutParameters?: boolean);
    ngOnInit(): void;
    refresh(): void;
    protected _connect(viewer: (BaseDataSourceViewer & Parameters) | BaseDataSourceViewer<Parameters>): [Observable<Data>, TeardownLogic] | Observable<Data>;
    protected handelExecution(): OperatorFunction<Data, Data>;
    protected execute(parameters?: Parameters): Promise<Data>;
    protected executeWithoutParameters(): Promise<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<MethodDataSource<any, any>, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<MethodDataSource<any, any>>;
}
