import { Injector } from '@angular/core';
import { Observable } from 'rxjs';
import { ArrayOrValue, ModelTypeString } from '@dereekb/util';
import { DbxModelTypeConfiguration, DbxModelTypeConfigurationMap } from './model.types';
import * as i0 from "@angular/core";
export interface DbxModelTypeInfo extends Omit<DbxModelTypeConfiguration, 'srefFactory'> {
    /**
     * Whether or not a response is expected for segues
     * to a view for objects of this type.
     */
    readonly canSegueToView: boolean;
}
export interface DbxModelTypesMap<I extends DbxModelTypeInfo> {
    readonly [type: string]: I;
}
export interface DbxModelIconsMap {
    readonly [type: string]: string;
}
export declare class DbxModelTypesService<I extends DbxModelTypeInfo = DbxModelTypeInfo> {
    static readonly DEFAULT_ICON = "help_outline";
    readonly injector: Injector;
    private readonly _configs;
    addTypeConfigs(configs: ArrayOrValue<DbxModelTypeConfiguration>): void;
    addTypeConfigsMap(configs: DbxModelTypeConfigurationMap): void;
    readonly typesMap$: Observable<DbxModelTypesMap<I>>;
    readonly iconMap$: Observable<DbxModelIconsMap>;
    iconForType(type: ModelTypeString): Observable<string>;
    static ɵfac: i0.ɵɵFactoryDeclaration<DbxModelTypesService<any>, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DbxModelTypesService<any>>;
}
