/**
 * 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 GeneratorFn } from '@finos/legend-shared';
import type { EditorStore } from '../../EditorStore.js';
import { type Class, type Constraint, type DerivedProperty, RawLambda } from '@finos/legend-graph';
import { LambdaEditorState } from '@finos/legend-query-builder';
export declare const CONSTRAINT_SOURCE_ID_LABEL = "constraint";
export declare const DERIVED_PROPERTY_SOURCE_ID_LABEL = "derivedProperty";
export declare class DerivedPropertyState extends LambdaEditorState {
    derivedProperty: DerivedProperty;
    editorStore: EditorStore;
    constructor(derivedProperty: DerivedProperty, editorStore: EditorStore);
    get lambdaId(): string;
    setBodyAndParameters(lambda: RawLambda): void;
    convertLambdaGrammarStringToObject(): GeneratorFn<void>;
    convertLambdaObjectToGrammarString(options?: {
        pretty?: boolean | undefined;
        preserveCompilationError?: boolean | undefined;
    }): GeneratorFn<void>;
}
export declare class ConstraintState extends LambdaEditorState {
    constraint: Constraint;
    editorStore: EditorStore;
    constructor(constraint: Constraint, editorStore: EditorStore);
    get lambdaId(): string;
    convertLambdaGrammarStringToObject(): GeneratorFn<void>;
    convertLambdaObjectToGrammarString(options?: {
        pretty?: boolean | undefined;
        preserveCompilationError?: boolean | undefined;
    }): GeneratorFn<void>;
}
export declare class ClassState {
    editorStore: EditorStore;
    class: Class;
    derivedPropertyStates: DerivedPropertyState[];
    constraintStates: ConstraintState[];
    isConvertingConstraintLambdaObjects: boolean;
    isConvertingDerivedPropertyLambdaObjects: boolean;
    constructor(editorStore: EditorStore, _class: Class);
    getNullableConstraintState: (constraint: Constraint) => ConstraintState | undefined;
    getNullableDerivedPropertyState: (dp: DerivedProperty) => DerivedPropertyState | undefined;
    getConstraintState: (constraint: Constraint) => ConstraintState;
    getDerivedPropertyState: (dp: DerivedProperty) => DerivedPropertyState;
    addConstraintState(constraint: Constraint): void;
    deleteConstraintState(constraint: Constraint): void;
    addDerivedPropertyState(derivedProperty: DerivedProperty): void;
    deleteDerivedPropertyState(derivedProperty: DerivedProperty): void;
    convertConstraintLambdaObjects(): GeneratorFn<void>;
    convertDerivedPropertyLambdaObjects(): GeneratorFn<void>;
    decorate(): void;
}
//# sourceMappingURL=ClassState.d.ts.map