import { IFragmentCgNode, IVarRefCgNode } from '@smikhalevski/codegen';
import { IJtdcDialect, IJtdcDialectOptions } from '@jtdc/types';
/**
 * Context used by the dialect during validator compilation.
 */
export interface IJtdDialectContext {
    /**
     * Wraps an expression so result is retained between validator invocations.
     */
    warpCache: (frag: IFragmentCgNode) => IFragmentCgNode;
    valueVar: IVarRefCgNode;
    ctxVar: IVarRefCgNode;
    pointerVar: IVarRefCgNode;
}
/**
 * Creates a validator compilation dialect that renders validators which follow the JTD specification.
 */
export declare function createJtdDialect<M>(options?: IJtdcDialectOptions<M>): IJtdcDialect<M, IJtdDialectContext>;
/**
 * Global default options used by {@link createJtdDialect}.
 */
export declare const jtdDialectOptions: Required<IJtdcDialectOptions<any>>;
