import { ChoiceListOption } from './../../forms/page/widgets/widget-value/choice-list-options';
import { UserService } from './../../core/user/user.service';
import { Attribute } from '../../enlighten-lib/data-model/attribute';
import { AxFilter } from '../../enlighten-lib/filters/ax-filter';
import { SearchNode } from '../../enlighten-lib/filters/search-node';
import { MetaColumnTypes } from '../metaColumnTypes';
import { User } from '../../core/user/user.types';
import * as i0 from "@angular/core";
export declare class MetaColumnFilterBuilderService {
    private _userService;
    appVersionId: number;
    constructor(_userService: UserService);
    /**
     * Build Meta Column Filter by meta Column type
     *
     * @param MetaColumnTypes
     * @returns
     */
    buildMetaColumn(metaColumnType: MetaColumnTypes, appVersionId: number): AxFilter;
    buildAssetFormsColumn(form: any, appVersionId: number): AxFilter;
    /**
     * Generate Attribute object by meta column type
     *
     * @param metaColumnType
     * @returns
     */
    generateAttribute(metaColumnType: MetaColumnTypes): Attribute;
    generateAssetFormsAttribute(form: any): Attribute;
    /**
     * Generate Search node for meta column filter
     *
     * @returns
     */
    generateSearchNode(): SearchNode;
    /**
     * Generate Filter Object
     *
     * @returns
     */
    generateFilter(): AxFilter;
    /**
     * Build Task Status Filter
     *
     * @returns
     */
    buildTaskStatusFilter(filter: AxFilter, metaColumnType: MetaColumnTypes): AxFilter;
    /**
     * Generate Task Assign To filter
     *
     * @param filter
     * @param metaColumnType
     * @returns
     */
    buildUserMetaFilter(filter: AxFilter, metaColumnType: MetaColumnTypes): AxFilter;
    buildAssetFormsFilter(filter: AxFilter, form: any): AxFilter;
    /**
     * Generate User filter
     *
     * @param users
     * @returns
     */
    builderChoiceListOptionsForUsers(users: Array<User>): Array<ChoiceListOption>;
    /**
     * Generate generic date filter.
     *
     * @param filter
     * @param metaColumnType
     * @returns
     */
    builderGenericDateFilter(filter: AxFilter, metaColumnType: MetaColumnTypes): AxFilter;
    static ɵfac: i0.ɵɵFactoryDeclaration<MetaColumnFilterBuilderService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<MetaColumnFilterBuilderService>;
}
