import { Signal, TrackByFunction } from '@angular/core';
import { Observable } from 'rxjs';
import { DbxValueListItem, AbstractDbxValueListViewConfig, DbxValueListItemConfig } from './list.view.value';
import { AbstractDbxValueListViewDirective } from './list.view.value.directive';
import { DbxListView } from './list.view';
import { Maybe } from '@dereekb/util';
import { DbxValueListItemGroup } from './group/list.view.value.group';
import * as i0 from "@angular/core";
export interface DbxValueListViewConfig<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown> extends AbstractDbxValueListViewConfig<T, I, V> {
    readonly emitAllClicks?: boolean;
}
/**
 * Content view for a DbxValueListView. It can be used directly in cases where the items are already configured, or want to be configured in a non-standard fashion.
 */
export declare class DbxValueListViewContentGroupComponent<G, T, I extends DbxValueListItem<T> = DbxValueListItem<T>> {
    readonly dbxValueListViewContentComponent: DbxValueListViewContentComponent<T, DbxValueListItem<T, unknown>>;
    readonly group: import("@angular/core").InputSignal<Maybe<DbxValueListItemGroup<G, T, I, unknown, unknown>>>;
    readonly trackByFunctionSignal: Signal<TrackByFunction<any> | ((index: number, item: DbxValueListItemConfig<T, DbxValueListItem<T, unknown>>) => any)>;
    readonly itemsSignal: Signal<DbxValueListItemConfig<T, I>[]>;
    readonly headerConfigSignal: Signal<Maybe<import("@dereekb/dbx-core").DbxInjectionComponentConfig<unknown>>>;
    readonly footerConfigSignal: Signal<Maybe<import("@dereekb/dbx-core").DbxInjectionComponentConfig<unknown>>>;
    readonly cssClassSignal: Signal<string>;
    onClickItem(item: I): void;
    onClickValue(value: T): void;
    rippleDisabledOnItem(item: I): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<DbxValueListViewContentGroupComponent<any, any, any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DbxValueListViewContentGroupComponent<any, any, any>, "dbx-list-view-content-group", never, { "group": { "alias": "group"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
export declare const DEFAULT_VALUE_LIST_VIEW_CONTENT_COMPONENT_TRACK_BY_FUNCTION: TrackByFunction<any>;
/**
 * Content view for a DbxValueListView. It can be used directly in cases where the items are already configured, or want to be configured in a non-standard fashion.
 */
export declare class DbxValueListViewContentComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> {
    readonly dbxListView: DbxListView<any, any>;
    private readonly _dbxListGroupDelegate;
    private readonly _trackBy$;
    readonly trackBy$: Observable<(index: number, item: DbxValueListItemConfig<T, I>) => any>;
    readonly items: import("@angular/core").InputSignal<Maybe<DbxValueListItemConfig<T, I>[]>>;
    readonly emitAllClicks: import("@angular/core").InputSignal<Maybe<boolean>>;
    readonly groups$: Observable<DbxValueListItemGroup<any, T, I>[]>;
    readonly groupsSignal: Signal<DbxValueListItemGroup<any, T, I, unknown, unknown>[] | undefined>;
    readonly disabledSignal: Signal<boolean | undefined>;
    onClickItem(item: I): void;
    onClickValue(value: T): void;
    rippleDisabledOnItem(item: I): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<DbxValueListViewContentComponent<any, any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DbxValueListViewContentComponent<any, any>, "dbx-list-view-content", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "emitAllClicks": { "alias": "emitAllClicks"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
/**
 * Renders a list view using input configuration. Requires a parent DbxListView.
 */
export declare class DbxValueListViewComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown, C extends DbxValueListViewConfig<T, I, V> = DbxValueListViewConfig<T, I, V>> extends AbstractDbxValueListViewDirective<T, I, V, C> {
    readonly emitAllClicksSignal: Signal<Maybe<boolean>>;
    static ɵfac: i0.ɵɵFactoryDeclaration<DbxValueListViewComponent<any, any, any, any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DbxValueListViewComponent<any, any, any, any>, "dbx-list-view", never, {}, {}, never, never, true, never>;
}
