import { Attribute, DataModel, DataSource, Enum, Expression, FunctionDecl, InvocationExpr, Model, TypeDef } from '@zenstackhq/language/ast';
import { ValidationAcceptor, ValidationRegistry } from 'langium';
import type { ZModelServices } from '../zmodel-module';
/**
 * Registry for validation checks.
 */
export declare class ZModelValidationRegistry extends ValidationRegistry {
    constructor(services: ZModelServices);
}
/**
 * Implementation of custom validations.
 */
export declare class ZModelValidator {
    protected readonly services: ZModelServices;
    constructor(services: ZModelServices);
    private shouldCheck;
    checkModel(node: Model, accept: ValidationAcceptor): void;
    checkDataSource(node: DataSource, accept: ValidationAcceptor): void;
    checkDataModel(node: DataModel, accept: ValidationAcceptor): void;
    checkTypeDef(node: TypeDef, accept: ValidationAcceptor): void;
    checkEnum(node: Enum, accept: ValidationAcceptor): void;
    checkAttribute(node: Attribute, accept: ValidationAcceptor): void;
    checkExpression(node: Expression, accept: ValidationAcceptor): void;
    checkFunctionInvocation(node: InvocationExpr, accept: ValidationAcceptor): void;
    checkFunctionDecl(node: FunctionDecl, accept: ValidationAcceptor): void;
}
