import type { ElementRef, QueryList } from '@angular/core';
import { EventEmitter } from '@angular/core';
import type { TuiBooleanHandler } from '@taiga-ui/cdk/types';
import type { TuiDataListAccessor } from '@taiga-ui/core/components/data-list';
import { TuiDataListComponent, TuiOption, TuiOptionWithValue } from '@taiga-ui/core/components/data-list';
import type { TuiValueContentContext } from '@taiga-ui/core/types';
import type { PolymorpheusContent } from '@taiga-ui/polymorpheus';
import * as i0 from "@angular/core";
export declare class TuiDataListWrapperComponent<T, K = T> implements TuiDataListAccessor<T> {
    private readonly datalist;
    private readonly itemsHandlers;
    private readonly itemsHandlersLegacy;
    protected readonly legacyOptionsQuery: QueryList<TuiOption<T>>;
    protected readonly optionsQuery: QueryList<TuiOptionWithValue<T>>;
    protected readonly newOptionMode: boolean;
    items: readonly K[] | null;
    disabledItemHandler: TuiBooleanHandler<T>;
    emptyContent: PolymorpheusContent;
    size: "m" | "l" | "s";
    readonly itemClick: EventEmitter<T>;
    readonly options: import("@angular/core").Signal<readonly T[]>;
    itemContent: PolymorpheusContent<TuiValueContentContext<T>>;
    getContext($implicit: T, { nativeElement }: ElementRef<HTMLElement>): TuiValueContentContext<T>;
    getOptions(includeDisabled?: boolean): readonly T[];
    protected set datalistSetter(x: TuiDataListComponent<T>);
    protected $cast(items: readonly K[]): readonly T[];
    static ɵfac: i0.ɵɵFactoryDeclaration<TuiDataListWrapperComponent<any, any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TuiDataListWrapperComponent<any, any>, "tui-data-list-wrapper:not([labels]), tui-data-list-wrapper:not([labels])[new]", never, { "items": { "alias": "items"; "required": false; }; "disabledItemHandler": { "alias": "disabledItemHandler"; "required": false; }; "emptyContent": { "alias": "emptyContent"; "required": false; }; "size": { "alias": "size"; "required": false; }; "itemContent": { "alias": "itemContent"; "required": false; }; }, { "itemClick": "itemClick"; }, never, never, true, never>;
}
