/**
 * 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 { RawLambda } from '@finos/legend-graph';
import { type GeneratorFn, ActionState } from '@finos/legend-shared';
import type { QueryBuilderState } from './QueryBuilderState.js';
import { LambdaEditorState } from './shared/LambdaEditorState.js';
export declare class QueryBuilderRawLambdaState {
    lambda: RawLambda;
    constructor(lambda: RawLambda);
    setLambda(lambda: RawLambda): void;
}
export declare enum QueryBuilderTextEditorMode {
    TEXT = "TEXT",
    JSON = "JSON"
}
export declare class QueryBuilderTextEditorState extends LambdaEditorState {
    queryBuilderState: QueryBuilderState;
    rawLambdaState: QueryBuilderRawLambdaState;
    isConvertingLambdaToString: boolean;
    mode: QueryBuilderTextEditorMode | undefined;
    closingQueryState: ActionState;
    /**
     * This is used to store the JSON string when viewing the query in JSON mode
     * TODO: consider moving this to another state if we need to simplify the logic of text-mode
     */
    readOnlylambdaJson: string;
    isReadOnly: boolean | undefined;
    constructor(queryBuilderState: QueryBuilderState);
    get lambdaId(): string;
    get text(): string | undefined;
    setQueryRawLambdaState(rawLambdaState: QueryBuilderRawLambdaState): void;
    setIsReadOnly(val: boolean | undefined): void;
    setMode(openModal: QueryBuilderTextEditorMode | undefined): void;
    setLambdaJson(lambdaJson: string): void;
    convertLambdaGrammarStringToObject(): GeneratorFn<void>;
    convertLambdaObjectToGrammarString(options: {
        pretty?: boolean | undefined;
    }): GeneratorFn<void>;
    openModal(mode: QueryBuilderTextEditorMode, isReadOnly?: boolean): void;
    closeModal(): GeneratorFn<void>;
}
//# sourceMappingURL=QueryBuilderTextEditorState.d.ts.map