///
import { SchemaFileRepository } from '@cubejs-backend/shared';
import { NativeInstance } from '@cubejs-backend/native';
import { LRUCache } from 'lru-cache';
import vm from 'vm';
import { DataSchemaCompiler } from './DataSchemaCompiler';
import { CubeEvaluator } from './CubeEvaluator';
import { ContextEvaluator } from './ContextEvaluator';
import { ViewGroupEvaluator } from './ViewGroupEvaluator';
import { JoinGraph } from './JoinGraph';
import { CubeToMetaTransformer } from './CubeToMetaTransformer';
import { CompilerCache } from './CompilerCache';
import type { ErrorReporter } from './ErrorReporter';
export type PrepareCompilerOptions = {
nativeInstance?: NativeInstance;
allowNodeRequire?: boolean;
allowJsDuplicatePropsInSchema?: boolean;
maxQueryCacheSize?: number;
maxQueryCacheAge?: number;
compileContext?: any;
standalone?: boolean;
headCommitId?: string;
adapter?: string;
compiledScriptCache?: LRUCache;
compiledYamlCache?: LRUCache;
compiledJinjaCache?: LRUCache;
};
export interface CompilerInterface {
compile: (cubes: any[], errorReporter: ErrorReporter) => void;
}
export type Compiler = {
compiler: DataSchemaCompiler;
metaTransformer: CubeToMetaTransformer;
cubeEvaluator: CubeEvaluator;
contextEvaluator: ContextEvaluator;
viewGroupEvaluator: ViewGroupEvaluator;
joinGraph: JoinGraph;
compilerCache: CompilerCache;
headCommitId?: string;
compilerId: string;
};
export declare const prepareCompiler: (repo: SchemaFileRepository, options?: PrepareCompilerOptions) => Compiler;
export declare const compile: (repo: SchemaFileRepository, options?: PrepareCompilerOptions) => Promise;
//# sourceMappingURL=PrepareCompiler.d.ts.map