import { ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';
import { FormBuilder, FormGroup } from '@angular/forms';
import { ActivatedRoute, Router } from '@angular/router';
import { Asset, BaseDetailComponent, Category, DataService, GetVendors, LanguageCode, ModalService, NotificationService, Permission, ServerConfigService } from '@ishop/admin-ui/core';
import { BehaviorSubject, Observable } from 'rxjs';
import { VendorCategoryMemberFetchParams } from '../vendor-category-member-list/vendor-category-member-list.component';
export declare class VendorCategoryComponent extends BaseDetailComponent<Category.Fragment> implements OnInit, OnDestroy {
    private changeDetector;
    protected dataService: DataService;
    private formBuilder;
    private notificationService;
    private modalService;
    detailForm: FormGroup;
    assetChanges: {
        featuredAsset?: Asset;
    };
    readonly updatePermission: Permission[];
    members$: Observable<GetVendors.Items[]>;
    membersTotal$: Observable<number>;
    selectedVendorIds: string[];
    fetchGroupMembers$: BehaviorSubject<VendorCategoryMemberFetchParams>;
    private refreshActiveGroupMembers$;
    constructor(router: Router, route: ActivatedRoute, serverConfigService: ServerConfigService, changeDetector: ChangeDetectorRef, dataService: DataService, formBuilder: FormBuilder, notificationService: NotificationService, modalService: ModalService);
    ngOnInit(): void;
    ngOnDestroy(): void;
    assetsChanged(): boolean;
    /**
     * If creating a new Collection, automatically generate the slug based on the collection name.
     */
    updateSlug(nameValue: string): void;
    create(): void;
    save(): void;
    canDeactivate(): boolean;
    /**
     * Sets the values of the form on changes to the category or current language.
     */
    protected setFormValues(entity: Category.Fragment, languageCode: LanguageCode): void;
    /**
     * Given a category and the value of the form, this method creates an updated copy of the category which
     * can then be persisted to the API.
     */
    private getUpdatedCollection;
    /**
     * Maps an array of conditions or actions to the input format expected by the GraphQL API.
     */
    private mapOperationsToInputs;
}
