import { PropertyValues, TemplateResult } from 'lit';
import { DataTable } from '../DataTable.js';
import type { DataCatalogSchemaWithVersion } from '@api-client/core/models/DataCatalog.js';
import type { UiListSelection } from '../../../md/list/internals/List.js';
/**
 * Represents a selection in the data catalog browser.
 */
export interface DataCatalogTableSelectionDetail {
    /**
     * The schema that was selected.
     * When not set, the selection was cleared.
     */
    item?: DataCatalogSchemaWithVersion;
    /**
     * The version of the schema that was selected.
     * When not set, the selection was cleared.
     */
    version?: string;
}
/**
 * @fires CustomEvent<DataCatalogTableSelectionDetail> select - Dispatched when the selection in the table changes.
 */
export default class DataCatalogTable extends DataTable<DataCatalogSchemaWithVersion> {
    #private;
    items: LiveData<DataCatalogSchemaWithVersion[]> | undefined;
    /**
     * When the user makes a selection, this map will contain the selected version for a schema.
     */
    selectedVersions: Map<string, string>;
    /**
     * When set, the table will render additional column with a button to directly select the item.
     * Note, the row selection will not be available in this case.
     * @attribute
     */
    accessor directSelect: boolean;
    constructor();
    protected willUpdate(cp: PropertyValues<this>): void;
    protected clearSelection(): void;
    protected handleVersionSelect(e: CustomEvent<UiListSelection>): void;
    protected notifySelect(selectedItems: DataCatalogSchemaWithVersion[]): void;
    renderHeader(): TemplateResult[];
    renderRowValues(item: DataCatalogSchemaWithVersion, index: number): TemplateResult[];
}
//# sourceMappingURL=DataCatalogTable.d.ts.map