import { ChangeDetectorRef, EventEmitter, OnDestroy } from '@angular/core';
import { Observable, Subject } from 'rxjs';
import { KubernetesResource } from './../../types/k8s';
import { K8sUtilService } from './../../utils/k8s-util.service';
import { ResourceSelectContextService } from './context.service';
import { ConfigurableField, DataItemBase, ResourceDataNumbers } from './types';
export declare type UsageContext = 'page' | 'popup';
export declare abstract class ResourceListBase implements OnDestroy {
    protected readonly cdr: ChangeDetectorRef;
    protected readonly k8sUtil: K8sUtilService;
    protected readonly contextService: ResourceSelectContextService;
    context: UsageContext;
    fields: ConfigurableField[];
    fields$: Observable<ConfigurableField[]>;
    selectItem: EventEmitter<DataItemBase>;
    load: EventEmitter<ResourceDataNumbers>;
    reload$$: Subject<void>;
    destroy$$: Subject<void>;
    loading: boolean;
    forceLoading: boolean;
    constructor(cdr: ChangeDetectorRef, k8sUtil: K8sUtilService, contextService: ResourceSelectContextService);
    reload(): void;
    onSelect(selected: DataItemBase): void;
    abstract mapResource(res: KubernetesResource[], params?: unknown): DataItemBase[];
    ngOnDestroy(): void;
}
