import { AfterViewInit, ChangeDetectorRef, DestroyRef, ElementRef, InjectionToken, TemplateRef } from '@angular/core';
import { Subject } from 'rxjs';
import { KbqFilterBar } from '../filter-bar';
import { KbqPipeData, KbqPipeTemplate, KbqPipeType } from '../filter-bar.types';
import * as i0 from "@angular/core";
/** Injection Token for providing configuration of filter-bar */
export declare const KBQ_PIPE_DATA: InjectionToken<unknown>;
/** function to get unique identifier of an element */
export declare function getId(item: KbqPipeTemplate): KbqPipeType | string | number;
export declare abstract class KbqBasePipe<V> implements AfterViewInit {
    /** changes of state */
    readonly stateChanges: Subject<void>;
    /** pipe data. Provided from subclass */
    readonly data: KbqPipeData<V>;
    /** KbqFilterBar instance
     * @docs-private */
    protected readonly filterBar: KbqFilterBar | null;
    /** @docs-private */
    protected readonly changeDetectorRef: ChangeDetectorRef;
    /** @docs-private */
    protected readonly destroyRef: DestroyRef;
    /** values to select from the pipe template */
    protected values: any;
    /** TemplateRef for selecting an option */
    protected valueTemplate?: TemplateRef<any> | string;
    /**
     * Whether the current platform is a Mac.
     *
     * @docs-private
     */
    isMac: boolean;
    /** Data for the pipe.
     *  @docs-private */
    $implicit: unknown;
    /** Whether the current pipe is empty. Used for apply style modifier */
    get isEmpty(): boolean;
    /** Whether the current pipe is removable or cleanable. Used for apply style modifier */
    get showRemoveButton(): boolean;
    /** localized data
     * @docs-private */
    get localeData(): any;
    constructor();
    ngAfterViewInit(): void;
    /** templateRef checker utility */
    isTemplateRef(value: unknown): boolean;
    /** updates values for selection and value template */
    updateTemplates: (templates: KbqPipeTemplate[] | null) => void;
    /** removes pipe from filter-bar and triggers changes */
    onRemove(): void;
    /** clears the pipe and triggers changes */
    onClear(): void;
    /** @docs-private */
    abstract open(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqBasePipe<any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<KbqBasePipe<any>, never, never, {}, {}, never, never, true, never>;
}
export declare class KbqPipeMinWidth {
    /** KbqFilterBar instance */
    protected readonly filterBar: KbqFilterBar | null;
    /** @docs-private */
    protected readonly elementRef: ElementRef<HTMLElement>;
    /** @docs-private */
    protected readonly changeDetectorRef: ChangeDetectorRef;
    /** @docs-private */
    protected minWidth: string;
    /** maximal symbols for apply fit-content to min-width */
    maxSymbolsForFitContent: number;
    /** current length of text */
    get textLength(): number;
    constructor();
    update: () => void;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqPipeMinWidth, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<KbqPipeMinWidth, "[kbqPipeMinWidth]", never, {}, {}, never, never, true, never>;
}
