import { AfterViewInit, OnDestroy } from '@angular/core';
import { QdSearchOptions } from '../../../search/model/search-options.interface';
import { QdSearchComponent } from '../../../search/search.component';
import { QdTableComponent } from '../../../table/table.component';
import { QdToolbarComponentsService } from '../../services/toolbar-components.service';
import * as i0 from "@angular/core";
/**
 * Directive for establishing a connection between **QdTableComponent** and the existing **QdSearchComponent** within **QdSection**.
 *
 * @note
 * Attach this directive to the table and provide **QdSearchOptions** via the **[qdConnectToSearch]** input.
 * This directive enables communication between the table and the search component. It ensures that changes to the search criteria are reflected in the table.
 *
 * @note
 * The **QdTableDataResolver** will send this search criteria as a property in the method argument object, which can be used for a service request
 *
 * @note
 * Avoid using redundant searchConfig properties in sectionConfig! They become useless and are overridden by this directive.
 *
 * ####**Usage**
 *
 * ```html
 * <qd-section [config]="sectionConfig">
 *   <qd-table [config]="tableConfig" [qdConnectToSearch]="searchConfig"></qd-table>
 * </qd-section>
 * ```
 *
 * ```ts
 * resolve({ search, … }): Observable<MyResultFromService> {
 *   doSomethingFancyWith(search, …)
 * }
 * ```
 */
export declare class QdConnectorTableSearchDirective<T extends string> implements AfterViewInit, OnDestroy {
    private tableComponent;
    private toolbarComponentsService;
    /**
     * @description Configuration of the search used to connect to the table.
     */
    qdConnectToSearch: QdSearchOptions;
    searchComponent: QdSearchComponent;
    private _destroy$;
    constructor(tableComponent: QdTableComponent<T>, toolbarComponentsService: QdToolbarComponentsService);
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    private setSearchComponent;
    private validateAndApplyConfig;
    private subscribeToSearchChanges;
    static ɵfac: i0.ɵɵFactoryDeclaration<QdConnectorTableSearchDirective<any>, [{ host: true; }, null]>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<QdConnectorTableSearchDirective<any>, "qd-table[qdConnectToSearch]", never, { "qdConnectToSearch": { "alias": "qdConnectToSearch"; "required": false; }; }, {}, never, never, false, never>;
}
//# sourceMappingURL=connector-table-search.directive.d.ts.map