import { ComponentPickerType } from '../types';
import { FormComponent, FormInfo } from '@limetech/lime-elements';
import { LimeWebComponent, LimeWebComponentContext, LimeWebComponentPlatform, WebComponentMetadata } from '@limetech/lime-web-components';
import { EventEmitter } from '../../../stencil-public-runtime';
/**
 * This component must be used in a limel-form
 * where the Command ID OR component name exists in the same section as the config.
 *
 * @beta
 *
 * @exampleComponent limebb-example-command-config
 * @exampleComponent limebb-example-component-config
 */
export declare class ComponentConfig implements LimeWebComponent, FormComponent<Record<string, unknown>> {
    platform: LimeWebComponentPlatform;
    context: LimeWebComponentContext;
    value: Record<string, unknown>;
    required: boolean;
    readonly: boolean;
    disabled: boolean;
    label: string;
    helperText: string;
    formInfo?: FormInfo | undefined;
    /**
     * If the value should be fetched from the commandbus or the web component registry
     */
    type: ComponentPickerType;
    /**
     * The name of the field that contains the component name or command id
     * If not provided, it will be based on the `type` prop
     *
     * `component` -> `name`
     * `command` -> `id`
     */
    nameField?: string;
    change: EventEmitter<Record<string, unknown>>;
    private configComponent?;
    private configViewType;
    componentWillLoad(): void;
    componentShouldUpdate(_newValue: unknown, _oldValue: unknown, property: string): boolean;
    protected watchFormInfo(): void;
    protected watchconfigComponent(newValue: WebComponentMetadata['configComponent'], oldValue: WebComponentMetadata['configComponent']): void;
    private getComponentName;
    private findConfigComponent;
    render(): any[];
    private renderHeader;
    private handleChangeMode;
    private renderContent;
    private renderCodeEditor;
    private renderConfigComponent;
    private handleCodeEditorChange;
    private getNameField;
    private get registry();
    private get commandbus();
}
//# sourceMappingURL=component-config.d.ts.map