import { Expression } from '@zenstackhq/sdk/ast';
/**
 * Options for {@link ConstraintTransformer}.
 */
export type ConstraintTransformerOptions = {
    authAccessor: string;
};
/**
 * Transform a set of allow and deny rules into a single constraint expression.
 */
export declare class ConstraintTransformer {
    private readonly options;
    private varCounter;
    constructor(options: ConstraintTransformerOptions);
    /**
     * Transforms a set of allow and deny rules into a single constraint expression.
     */
    transformRules(allows: Expression[], denies: Expression[]): string;
    private and;
    private or;
    private not;
    private transformExpression;
    private transformLiteral;
    private transformReference;
    private transformMemberAccess;
    private transformBinary;
    private transformUnary;
    private transformComparison;
    private transformAuthComparison;
    private transformCheckInvocation;
    private normalizeToNull;
    private isAuthEqualNull;
    private isAuthNotEqualNull;
    private getComparisonOperand;
    private mapExpressionType;
    private mapType;
    private mapOperatorToConstraintKind;
    private getFieldAccess;
    private getAuthAccess;
    private nextVar;
    private variable;
    private value;
}
