import { Constructor } from '@rxap/utilities';
import { Observable, ReplaySubject } from 'rxjs';
import { OnDestroy } from '@angular/core';
import { BaseDataSource, BaseDataSourceMetadata } from './base.data-source';
import * as i0 from "@angular/core";
export type StaticDataSourceData<Data = any> = Data | Promise<Data> | Observable<Data> | (() => Data);
export interface StaticDataSourceMetadata<Data = any> extends BaseDataSourceMetadata {
    data?: StaticDataSourceData<Data>;
}
export declare class StaticDataSource<Data = any> extends BaseDataSource<Data, StaticDataSourceMetadata<Data>> implements OnDestroy {
    protected _data$: ReplaySubject<Data>;
    private _dataSubscription?;
    constructor(data: any | null, metadata: StaticDataSourceMetadata | null);
    get data(): Data;
    set data(value: Data);
    ngOnDestroy(): void;
    protected _connect(): Observable<Data>;
    static ɵfac: i0.ɵɵFactoryDeclaration<StaticDataSource<any>, [{ optional: true; }, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<StaticDataSource<any>>;
}
export declare function RxapStaticDataSource<Data>(metadata: StaticDataSourceMetadata<Data>, className?: string, packageName?: string): (target: Constructor<StaticDataSource<Data>>) => void;
export declare function staticDataSource<Data>(data: StaticDataSourceData<Data>, metadata?: StaticDataSourceMetadata<Data>): StaticDataSource<Data>;
