import { ChangeDetectorRef, EventEmitter, OnDestroy } from '@angular/core';
import { Observable, Subject } from 'rxjs';
import { AuthorizationStateService } from '../../authorization/state.service';
import { K8sUtilService } from '../../core/services';
import { KubernetesResource } from './../../core';
import { ResourceSelectContextService } from './context.service';
import { ConfigurableField, DataItemBase, ResourceDataNumbers } from './types';
import * as i0 from "@angular/core";
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;
    auth: AuthorizationStateService;
    constructor(cdr: ChangeDetectorRef, k8sUtil: K8sUtilService, contextService: ResourceSelectContextService);
    reload(): void;
    onSelect(selected: DataItemBase): void;
    abstract mapResource(res: KubernetesResource[], params?: unknown): DataItemBase[];
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ResourceListBase, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ResourceListBase, never, never, { "context": "context"; "fields": "fields"; }, { "selectItem": "selectItem"; "load": "load"; }, never, never, false>;
}
