/**
 * Copyright (c) 2020-present, Goldman Sachs
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import { type EmbeddedData, type DataElement, DataElementReference, ExternalFormatData, ModelStoreData, RelationalCSVData, RelationalCSVDataTable } from '@finos/legend-graph';
import type { EditorStore } from '../../../EditorStore.js';
export declare const createEmbeddedData: (type: string, editorStore: EditorStore) => EmbeddedData;
export declare abstract class EmbeddedDataState {
    editorStore: EditorStore;
    embeddedData: EmbeddedData;
    constructor(editorStore: EditorStore, embeddedData: EmbeddedData);
    abstract label(): string;
}
export declare class ExternalFormatDataState extends EmbeddedDataState {
    embeddedData: ExternalFormatData;
    constructor(editorStore: EditorStore, embeddedData: ExternalFormatData);
    label(): string;
    get supportsFormatting(): boolean;
    format(): void;
}
export declare class ModelStoreDataState extends EmbeddedDataState {
    embeddedData: ModelStoreData;
    constructor(editorStore: EditorStore, embeddedData: ModelStoreData);
    label(): string;
}
export declare class RelationalCSVDataTableState {
    readonly editorStore: EditorStore;
    table: RelationalCSVDataTable;
    constructor(table: RelationalCSVDataTable, editorStore: EditorStore);
    updateTableValues(val: string): void;
}
export declare class IdentifierTableState {
    table: RelationalCSVDataTable | undefined;
    dataState: RelationalCSVDataState;
    schemaName: string;
    tableName: string;
    constructor(dataState: RelationalCSVDataState);
    setTable(table: RelationalCSVDataTable | undefined): void;
    setTableName(val: string): void;
    setSchemaName(val: string): void;
    get isEditingDisabled(): boolean;
    handleSubmit(): void;
}
export declare class RelationalCSVDataState extends EmbeddedDataState {
    embeddedData: RelationalCSVData;
    showTableIdentifierModal: boolean;
    tableIdentifierState: IdentifierTableState;
    selectedTable: RelationalCSVDataTableState | undefined;
    constructor(editorStore: EditorStore, embeddedData: RelationalCSVData);
    openIdentifierModal(renameTable?: RelationalCSVDataTable | undefined): void;
    closeModal(): void;
    resetSelectedTable(): void;
    deleteTable(val: RelationalCSVDataTable): void;
    changeSelectedTable(val: RelationalCSVDataTable): void;
    label(): string;
}
export declare class DataElementReferenceState extends EmbeddedDataState {
    embeddedData: DataElementReference;
    embeddedDataValueState: EmbeddedDataState;
    constructor(editorStore: EditorStore, embeddedData: DataElementReference);
    label(): string;
    setDataElement(dataElement: DataElement): void;
    buildValueState(): EmbeddedDataState;
}
export declare class UnsupportedDataState extends EmbeddedDataState {
    label(): string;
}
export declare function buildEmbeddedDataEditorState(_embeddedData: EmbeddedData, editorStore: EditorStore): EmbeddedDataState;
//# sourceMappingURL=EmbeddedDataState.d.ts.map