import { Type } from '@angular/core';
import { Jsonified } from '@tangential/core';
import { StampedMediaType, StampedMediaTypeJson } from '@tangential/media-types';
import { ConfigurableInputType, ConfigurableInputTypeJson } from './data-type/configurable-input-type';
export interface InputConfigJson extends StampedMediaTypeJson {
    $isSystem?: boolean;
    _inputName?: string;
    orderIndex?: number;
    disabled?: boolean;
    label?: string;
    typeConfig?: ConfigurableInputTypeJson;
}
export declare abstract class InputConfig extends StampedMediaType implements Jsonified<InputConfig, InputConfigJson>, InputConfigJson {
    static $model: InputConfigJson;
    static INPUT_NAME: string;
    $isSystem: boolean;
    _inputName: string;
    orderIndex?: number;
    disabled?: boolean;
    label: string;
    typeConfig?: ConfigurableInputType;
    constructor(_inputName: string, config: InputConfigJson, key?: string);
    abstract getDemoInstance(): any;
    static register<T extends InputConfig>(inputConfigCtor: Type<T>): void;
    static create(config: InputConfigJson, key?: string, inputName?: string): any;
}
