import { OnDestroy, OnInit } from '@angular/core';
import { bem } from './utils';
import { NgAisInstantSearch } from './instantsearch/instantsearch';
import { NgAisIndex } from './index-widget/index-widget';
import { Widget, WidgetDescription, Connector, Renderer, UnknownWidgetParams } from 'instantsearch.js/es/types';
export { Widget, Connector };
declare type AdditionalWidgetProperties = Partial<Widget<WidgetDescription>>;
export declare abstract class TypedBaseWidget<TWidgetDescription extends WidgetDescription, TConnectorParams extends UnknownWidgetParams> implements OnInit, OnDestroy {
    autoHideContainer?: boolean;
    widget?: Widget;
    state?: TWidgetDescription['renderState'];
    cx: ReturnType<typeof bem>;
    abstract instantSearchInstance: NgAisInstantSearch;
    abstract parentIndex?: NgAisIndex;
    protected constructor(widgetName: string);
    get parent(): NgAisIndex | NgAisInstantSearch;
    createWidget(connector: Connector<TWidgetDescription, TConnectorParams>, options: TConnectorParams, additionalWidgetProperties?: AdditionalWidgetProperties): void;
    ngOnInit(): void;
    ngOnDestroy(): void;
    updateState: Renderer<TWidgetDescription['renderState'], TConnectorParams>;
    /**
     * Helper to generate class names for an item
     * @param item element to generate a class name for
     */
    getItemClass(item: {
        isRefined?: boolean;
    }): string;
}
