import { IDeviceRegistration, IManagedObject, UserService, InventoryService, DeviceRegistrationService } from '@c8y/client';
import { ManagedObjectRealtimeService, DeviceBootstrapRealtimeService, AppStateService } from '@c8y/ngx-components';
import { SubscriptionViewModel, SubscriptionsViewModelNg1 } from './model/data-broker.subscription.model';
import * as i0 from "@angular/core";
export declare class DataBrokerSubscriptionsService {
    private moRealtimeService;
    private deviceBootstrapRealtimeService;
    private inventoryService;
    private userService;
    private deviceRegistrationService;
    private appStateService;
    private readonly FRAGMENT_TYPE;
    private readonly NEW_DEVICE_REQUEST_TYPE;
    /**
     * inventory polling interval
     */
    private readonly POLL_INTERVAL_FOR_SUBSCRIPTIONS;
    /**
     * produce status fragment for subscription
     */
    private subscriptionStatusViewModelFactory;
    /**
     * produce request status view model
     */
    private newDeviceRequestStatusViewModelFactory;
    private moRealtimeSubscriptionsMap;
    private subscriptionsCount;
    private refreshPendingTrigger$;
    filters: {
        fragmentType: string;
        pageSize: number;
    };
    /**
     * legacy enum values
     */
    NEW_DEVICE_REQUEST_STATUS: any;
    constructor(moRealtimeService: ManagedObjectRealtimeService, deviceBootstrapRealtimeService: DeviceBootstrapRealtimeService, inventoryService: InventoryService, userService: UserService, deviceRegistrationService: DeviceRegistrationService, appStateService: AppStateService);
    getBrokerSubscriptionsList(): Promise<IManagedObject[]>;
    /**
     * User status text (legacy compatibility)
     */
    getVisibleUserStatusText(user: any): string;
    remove(subscription: SubscriptionViewModel): Promise<import("@c8y/client").IResult<IManagedObject>>;
    setStatus(subscription: SubscriptionViewModel, enabled: boolean): Promise<SubscriptionViewModel>;
    /**
     * List of pending subscriptions
     */
    listPendingBrokerSubscriptions(): Promise<IDeviceRegistration[]>;
    /**
     * Accept subscription
     */
    accept(code: string): Promise<IDeviceRegistration>;
    /**
     * Discard subscription
     */
    discard(code: string): Promise<import("@c8y/client").IResult<null>>;
    /**
     * Add new subscription
     */
    create(code: string): Promise<IDeviceRegistration>;
    getForNg1({ pollingInterval, onPendingSubscriptions, onExistingSubscriptions, onMoUpdate }: {
        pollingInterval: any;
        onPendingSubscriptions: any;
        onExistingSubscriptions: any;
        onMoUpdate: any;
    }): SubscriptionsViewModelNg1;
    private convertDeviceRegistrationsToSubscriptionViewModels;
    private generateDeviceRequestStatusEnum;
    private convertToViewModel;
    private getStatusViewModel;
    static ɵfac: i0.ɵɵFactoryDeclaration<DataBrokerSubscriptionsService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DataBrokerSubscriptionsService>;
}
//# sourceMappingURL=data-broker-subscriptions.service.d.ts.map