/**
 * 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 AtomicTest, type Testable, type TestAssertion, type TestResult } from '@finos/legend-graph';
import { type GeneratorFn, ActionState } from '@finos/legend-shared';
import type { EditorStore } from '../../../EditorStore.js';
import { TestAssertionEditorState } from './TestAssertionState.js';
export declare class TestableTestResultState {
    readonly editorStore: EditorStore;
    readonly testState: TestableTestEditorState;
    result: TestResult | undefined;
    constructor(testState: TestableTestEditorState, editorStore: EditorStore);
    setResult(val: TestResult | undefined): void;
}
export declare enum TESTABLE_TEST_TAB {
    SETUP = "SETUP",
    ASSERTIONS = "ASSERTIONS"
}
export declare class TestableTestEditorState {
    readonly editorStore: EditorStore;
    testable: Testable;
    test: AtomicTest;
    selectedAsertionState: TestAssertionEditorState | undefined;
    assertionEditorStates: TestAssertionEditorState[];
    selectedTab: TESTABLE_TEST_TAB;
    assertionToRename: TestAssertion | undefined;
    runningTestAction: ActionState;
    testResultState: TestableTestResultState;
    isReadOnly: boolean;
    constructor(testable: Testable, test: AtomicTest, isReadOnly: boolean, editorStore: EditorStore);
    setSelectedTab(val: TESTABLE_TEST_TAB): void;
    setAssertionToRename(assertion: TestAssertion | undefined): void;
    addAssertion(): void;
    deleteAssertion(assertionState: TestAssertionEditorState): void;
    openAssertion(val: TestAssertion): void;
    runTest(): GeneratorFn<void>;
    resetResult(): void;
    handleTestResult(testResult: TestResult): void;
    get assertionCount(): number;
    get assertionPassed(): number;
    get assertionFailed(): number;
}
//# sourceMappingURL=TestableEditorState.d.ts.map