/**
 * 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 TestData, type Connection, type IdentifiedConnection, type Runtime, type EmbeddedData, type RawLambda, type DataElement, type Mapping, type GraphManagerState, type Column, type ValueSpecification, type Table, type ObserverContext, type PureModel, type RelationalDataType, ConnectionTestData } from '@finos/legend-graph';
import { type GeneratorFn, ActionState } from '@finos/legend-shared';
import type { EditorStore } from '../../../../EditorStore.js';
import { type EmbeddedDataTypeOption, EmbeddedDataEditorState } from '../../data/DataEditorState.js';
import type { ServiceTestSuiteState } from './ServiceTestableState.js';
import { LambdaParameterState, LambdaParametersState } from '@finos/legend-query-builder';
export declare const createConnectionTestData: (val: IdentifiedConnection, embeddedDataType: string, editorStore: EditorStore) => ConnectionTestData;
export declare const createMockPrimitiveValueSpecificationFromRelationalDataType: (relationalDataType: RelationalDataType, graph: PureModel, observerContext: ObserverContext) => ValueSpecification | undefined;
export declare class ServiceTestDataParametersState extends LambdaParametersState {
    connectionTestDataState: ConnectionTestDataState;
    constructor(connectionTestDataState: ConnectionTestDataState);
    openModal(serviceExecutionParameters: {
        query: RawLambda;
        mapping: Mapping;
        runtime: Runtime;
    }, option?: {
        generateWithSeedData: boolean;
    }): void;
    build(query: RawLambda): LambdaParameterState[];
}
export declare class RowIdentifierState {
    readonly connectionTestDataState: ConnectionTestDataState;
    readonly _UUID: string;
    column: Column;
    value: ValueSpecification;
    constructor(connectionTestDataState: ConnectionTestDataState, column: Column, value: ValueSpecification);
    updateRowIdentifierColumn(col: Column): void;
    updateRowIdentifierValue(val: ValueSpecification): void;
}
export declare class TableRowIdentifierState {
    readonly connectionTestDataState: ConnectionTestDataState;
    readonly _UUID: string;
    table: Table;
    rowIdentifierStates: RowIdentifierState[];
    constructor(connectionTestDataState: ConnectionTestDataState, table: Table, rowIdentifierStates: RowIdentifierState[]);
    updateTable(table: Table): void;
    setNewRowIdentifierState(rowIdentifierStates: RowIdentifierState[]): void;
    addNewRowIdentifierState(column: Column): void;
    removeRowIdentifierState(rowIdentifierState: RowIdentifierState): void;
}
export declare class ConnectionTestDataState {
    readonly editorStore: EditorStore;
    readonly testDataState: ServiceTestDataState;
    readonly connectionData: ConnectionTestData;
    readonly parametersState: ServiceTestDataParametersState;
    readonly generatingTestDataState: ActionState;
    readonly generatingTestDataWithSeedDataState: ActionState;
    readonly generateSchemaQueryState: ActionState;
    useSharedModal: boolean;
    useSeedDataInputModal: boolean;
    tableRowIdentifierStates: TableRowIdentifierState[];
    embeddedEditorState: EmbeddedDataEditorState;
    anonymizeGeneratedData: boolean;
    constructor(testDataState: ServiceTestDataState, connectionData: ConnectionTestData);
    get identifiedConnection(): IdentifiedConnection | undefined;
    buildEmbeddedEditorState(): void;
    getAvailableTables(): Table[];
    setUseSharedModal(val: boolean): void;
    setUseSeedDataInputModal(val: boolean): void;
    setNewTableIdentifierState(tableRowIdentifierStates: TableRowIdentifierState[]): void;
    addNewTableIdentifierState(table: Table): void;
    removeTableIdentifierState(tableRowIdentifierState: TableRowIdentifierState): void;
    setAnonymizeGeneratedData(val: boolean): void;
    generateTestDataForDatabaseConnection(serviceExecutionParameters: {
        query: RawLambda;
        mapping: Mapping;
        runtime: Runtime;
    }): GeneratorFn<void>;
    generateTestData(): GeneratorFn<void>;
    generateTestDataWithSeedDataForDatabaseConnection(serviceExecutionParameters: {
        query: RawLambda;
        mapping: Mapping;
        runtime: Runtime;
    }): GeneratorFn<void>;
    generateTestDataWithSeedData(): GeneratorFn<void>;
    generateQuerySchemas(): GeneratorFn<void>;
    createExecutableQuery(rawLambda: RawLambda, parameterStates: LambdaParameterState[], graphManagerState: GraphManagerState): RawLambda;
    changeEmbeddedData(val: EmbeddedData): void;
    resolveConnectionValue(id: string): Connection | undefined;
    getAllIdentifiedConnections(): IdentifiedConnection[];
}
export declare class NewConnectionDataState {
    readonly editorStore: EditorStore;
    readonly testSuiteState: ServiceTestDataState;
    showModal: boolean;
    connection: IdentifiedConnection | undefined;
    embeddedDataType: EmbeddedDataTypeOption | undefined;
    dataElement: DataElement | undefined;
    constructor(editorStore: EditorStore, serviceTestDataState: ServiceTestDataState);
    setModal(val: boolean): void;
    setDataElement(val: DataElement | undefined): void;
    setEmbeddedDataType(val: EmbeddedDataTypeOption | undefined): void;
    openModal(): void;
    setConnection(val: IdentifiedConnection | undefined): void;
    handleConnectionChange(val: IdentifiedConnection): void;
    createConnectionTestData(): ConnectionTestData;
}
export declare class ServiceTestDataState {
    readonly editorStore: EditorStore;
    readonly testSuiteState: ServiceTestSuiteState;
    testData: TestData;
    selectedDataState: ConnectionTestDataState | undefined;
    newConnectionDataState: NewConnectionDataState;
    constructor(testData: TestData, testSuiteState: ServiceTestSuiteState);
    createConnectionTestData(): void;
    setSelectedDataState(val: ConnectionTestDataState | undefined): void;
    deleteConnectionTestData(val: ConnectionTestData): void;
    openConnectionTestData(val: ConnectionTestData): void;
}
//# sourceMappingURL=ServiceTestDataState.d.ts.map