/*!
 * Copyright 2019 VMware, Inc.
 * SPDX-License-Identifier: BSD-2-Clause
 */
import { OnDestroy, OnInit } from '@angular/core';
import { FormBuilder, FormGroup } from '@angular/forms';
import { ClrDatagridFilter } from '@clr/angular';
import { SelectOption } from '../../common/interfaces/select-option';
import { DatagridFilter, FilterConfig, FilterRendererSpec } from './datagrid-filter';
/**
 * List of select options and initial value for the filter are passed through this
 */
export interface DatagridSelectFilterConfig extends FilterConfig<string | number> {
    /**
     * List of select options
     */
    options: SelectOption[];
    /**
     * Switch to disable conversion of filter value to FIQL. Used by {@link DatagridSelectFilterComponent#getValue}
     */
    customFiql?: boolean;
}
/**
 * Used within a clarity grid column {@link DatagridComponent} to render a filter widget with select input
 * Example usage:
 * columns: GridColumn<MockRecord>[] = [{
 *      displayName: 'Custom Select filter',
 *      renderer: 'age',
 *      queryFieldName: 'age',
 *      filterRendererSpec: FilterComponentRendererSpec({
 *          type: DatagridSelectFilterComponent,
 *          config: {
 *              options: [{
 *                  value: 30,
 *                  display: 'Thirty'
 *              }, {
 *                  value: 60,
 *                  display: 'sixty'
 *              }],
 *              value: 60,
 *          },
 *      }),
 *   }]
 */
export declare class DatagridSelectFilterComponent extends DatagridFilter<string | number, DatagridSelectFilterConfig> implements OnInit, OnDestroy {
    private filterContainer;
    private fb;
    /**
     * Displayed as the first option with a falsy value. Selecting this option would deactivate the filter
     */
    anyChoice: SelectOption;
    createFormGroup(): FormGroup;
    constructor(filterContainer: ClrDatagridFilter, fb: FormBuilder);
    protected getDebounceTimeMs(): number;
    setValue(value: string | number): void;
    getValue(): string;
    isActive(): boolean;
    ngOnDestroy(): void;
}
/**
 * Creates a {@link FilterRendererSpec} with the given config.
 * @param options List of options for select input
 * @param value the default value that should go in this select filter.
 * @param customFiql when set as true will disable any formatting by {@link DatagridSelectFilterComponent#getValue}
 */
export declare function DatagridSelectFilter(options: SelectOption[], value?: string | number, customFiql?: boolean): FilterRendererSpec<DatagridSelectFilterConfig>;
