/**
 * 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 { ActionState, type GeneratorFn } from '@finos/legend-shared';
import * as monaco from 'monaco-editor';
import type { CommandRegistrar } from '@finos/legend-application';
import type { ExecutionResult } from '@finos/legend-graph';
export type SQLPlaygroundTheme = 'light' | 'dark';
export declare abstract class SqlExecutionResult {
}
export declare class CsvSqlExecutionResult extends SqlExecutionResult {
    value: string;
    sqlDuration: number;
    constructor(value: string, sqlDuration: number);
}
export declare class QueryExecutionResult extends SqlExecutionResult {
    result: ExecutionResult;
    constructor(result: ExecutionResult);
}
export declare abstract class AbstractSQLPlaygroundState implements CommandRegistrar {
    theme: SQLPlaygroundTheme;
    sqlText: string;
    executeRawSQLState: ActionState;
    sqlExecutionResult?: SqlExecutionResult | undefined;
    sqlEditorViewState: monaco.editor.ICodeEditorViewState | undefined;
    sqlEditorTextModel: monaco.editor.ITextModel;
    sqlEditor?: monaco.editor.IStandaloneCodeEditor | undefined;
    isLocalModeEnabled: boolean;
    constructor();
    abstract executeRawSQL(): GeneratorFn<void>;
    abstract registerCommands(): void;
    abstract deregisterCommands(): void;
    getCodeCompletionSuggestions(): string[];
    stopExecuteSQL(): void;
    setSqlExecutionResult(val: SqlExecutionResult | undefined): void;
    setSQLText(val: string): void;
    setTheme(val: SQLPlaygroundTheme): void;
    setSQLEditorViewState(state: monaco.editor.ICodeEditorViewState | undefined): void;
    setSQLEditor(val: monaco.editor.IStandaloneCodeEditor | undefined): void;
    toggleIsLocalModeEnabled(): void;
    get isExecuting(): boolean;
    get hasResult(): boolean;
}
//# sourceMappingURL=AbstractSQLPlaygroundState.d.ts.map