import { Type } from '@angular/core';
import { ConfigurableInputIval } from '../data-type/configurable-input-ival';
import { ConfigurableInputTypeJson } from '../data-type/configurable-input-type';
import { InputConfig } from '../input-config';
import { InputViewMode } from './input-view-mode';
import { InputTemplateIF } from './template-components/input-template-component/input-template.component';
import * as i0 from "@angular/core";
export declare class InputSet {
    inputCtor: Type<InputConfig>;
    view: Type<InputTemplateIF>;
    constructor(config: Type<InputConfig>, view: Type<InputTemplateIF>);
    createInputConfig(data?: ConfigurableInputTypeJson, key?: string): InputConfig;
}
export declare class InputRegistry {
    private inputEntries;
    constructor();
    private registerTypes;
    allTemplates(mode: InputViewMode): InputTemplateIF[];
    getInputSet(inputName: string): InputSet;
    getComponentCtorFor(inputConfig: InputConfig, mode: InputViewMode): Type<any>;
    createTemplateForTypeKey(inputName: string, mode: InputViewMode): InputTemplateIF;
    createTemplateForType(inputConfig: InputConfig, mode?: InputViewMode, ival?: ConfigurableInputIval): InputTemplateIF;
    get inputNames(): string[];
    static ɵfac: i0.ɵɵFactoryDeclaration<InputRegistry, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<InputRegistry>;
}
