import { IExpr } from './IExpr';
import { IClassRef, ILookupRegistry } from '@allgemein/schema-api';
export declare class ExprDesc implements IExpr {
    readonly type: string;
    private __key?;
    get key(): any;
    set key(value: any);
    value?: any;
    values?: any;
    isOp(): boolean;
    isGroup(): boolean;
    getSourceKeys(): string[];
    getTargetKeys(): string[];
    applyOn(target: any, source: any, force?: boolean): void;
    applyReverseOn(target: any, source: any, force?: boolean): void;
    /**
     * Returns key-value map of all key and referenced key or values
     * (sometimes needed for join definitions).
     */
    getMap(): any;
    lookup(source: any): (target: any) => boolean;
    for(target: any, keyMap?: any): any;
    /**
     * Test if conditions matching class properties and references
     */
    test(sourceRef: IClassRef, errors?: string[]): boolean;
    /**
     * Validate if defined keys match source and target element
     * - target = referred
     * - source = referrer
     */
    validate(registry: ILookupRegistry, targetRef: IClassRef, sourceRef?: IClassRef, throwing?: boolean): boolean;
    toJson(): any;
}
