/**
* @license
* Copyright 2024 Nuraly, Laabidi Aymen
* SPDX-License-Identifier: MIT
*/
import { LitElement } from 'lit';
import { type DataNodeConfiguration, type DatabaseProvider } from './data-node.types.js';
import './schema-select.component.js';
import './table-select.component.js';
import '../../db-connection-select/db-connection-select.component.js';
import './data-node-fields.component.js';
/**
* Data Node Configuration Component
*
* A stateful component that manages the entire data node configuration UI,
* including database type, connection, schema, table selection and column-aware
* field components.
*
* @example
* ```html
* handleUpdate(e.detail.key, e.detail.value)}
* >
* ```
*
* @fires config-update - Fired when any config value changes
*/
export declare class NrDataNodeConfig extends LitElement {
static styles: import("lit").CSSResult;
/** Current node configuration */
config: Partial;
/** Application ID (host-provided, replaces getVarValue) */
applicationId: string;
/** Database provider for introspection (host-provided) */
databaseProvider?: DatabaseProvider;
/** KV entries for connection selects (host-provided) */
kvEntries: {
keyPath: string;
value?: any;
isSecret: boolean;
}[];
/** Callback when a KV entry needs to be created */
onCreateKvEntry?: (detail: {
keyPath: string;
value: any;
scope: string;
isSecret: boolean;
}) => void;
private columns;
private loadingColumns;
updated(changedProperties: Map): void;
private loadColumns;
private onUpdate;
private renderDatabaseTypeSelect;
private renderConnectionSelect;
private renderSchemaSelect;
private renderTableSelect;
private renderColumnDependentSections;
render(): import("lit-html").TemplateResult<1>;
}
declare global {
interface HTMLElementTagNameMap {
'nr-data-node-config': NrDataNodeConfig;
}
}
//# sourceMappingURL=data-node-config.component.d.ts.map