import type { DocumentLocation, FieldDef, ModelDef, NamedModelObject, PipeSegment, Query, QueryFieldDef, StructDef, TurtleDef, SourceDef, SQLSourceDef } from '../../model/malloy_types'; import { MalloyElement } from '../ast'; import type { NameSpace } from '../ast/types/name-space'; import type { ModelEntry } from '../ast/types/model-entry'; import { MalloyChildTranslator, MalloyTranslator } from '../parse-malloy'; import type { DataRequestResponse, SQLSourceRequest, TranslateResponse } from '../translate-response'; import type { ExprValue } from '../ast/types/expr-value'; import type { LogSeverity, MessageCode, MessageParameterType } from '../parse-log'; import type { EventStream } from '../../runtime_types'; export declare function pretty(thing: any): string; export declare const aTableDef: SourceDef; /** * When translating partial trees, there will not be a document node * to handle namespace requests, this stands in for document in that case. */ declare class TestRoot extends MalloyElement implements NameSpace { private modelDef; elementType: string; globalNameSpace: NameSpace; constructor(child: MalloyElement, forTranslator: MalloyTranslator, modelDef: ModelDef); namespace(): NameSpace; getEntry(name: string): ModelEntry | undefined; setEntry(_name: string, _val: ModelEntry): void; } export declare class TestChildTranslator extends MalloyChildTranslator { translate(): TranslateResponse; addChild(url: string): void; } export declare class TestTranslator extends MalloyTranslator { readonly testSrc: string; allDialectsEnabled: boolean; testRoot?: TestRoot; internalModel: ModelDef; constructor(testSrc: string, importBaseURL?: string | null, eventStream?: EventStream | null, rootRule?: string, internalModel?: ModelDef); translate(): TranslateResponse; addChild(url: string): void; ast(): MalloyElement | undefined; private explainFailure; get nameSpace(): Record; exploreFor(exploreName: string): StructDef; static inspectCompile: boolean; compile(): void; unresolved(): DataRequestResponse; getSourceDef(srcName: string): SourceDef | undefined; getQuery(queryName: string | number): Query | undefined; } export declare class BetaExpression extends TestTranslator { readonly sourceName: string; private compiled?; constructor(src: string, model?: ModelDef, sourceName?: string); private testFS; compile(): void; generated(): ExprValue; } export declare function getExplore(modelDef: ModelDef, name: string): StructDef; export declare function getModelQuery(modelDef: ModelDef, name: string): Query; export declare function getFieldDef(source: StructDef, name: string): FieldDef; export declare function getQueryFieldDef(query: PipeSegment, name: string): QueryFieldDef; export declare function getQueryField(structDef: StructDef, name: string): TurtleDef; export declare function getJoinField(structDef: StructDef, name: string): StructDef; export interface MarkedSource { code: string; locations: DocumentLocation[]; translator?: TestTranslator; } interface HasTranslator extends MarkedSource { translator: TT; } export declare function expr(unmarked: TemplateStringsArray, ...marked: string[]): HasTranslator; export declare function model(unmarked: TemplateStringsArray, ...marked: string[]): HasTranslator; export declare function makeModelFunc(options: { model?: ModelDef; prefix?: string; wrap?: (code: string) => string; }): (unmarked: TemplateStringsArray, ...marked: string[]) => HasTranslator; export declare function makeExprFunc(model: ModelDef, sourceName: string): (unmarked: TemplateStringsArray, ...marked: string[]) => HasTranslator; export declare function markSource(unmarked: TemplateStringsArray, ...marked: string[]): MarkedSource; export declare function getSelectOneStruct(sqlBlock: SQLSourceRequest): { [key: string]: SQLSourceDef; }; export declare function error(code: T, data?: MessageParameterType): { code: T; data: MessageParameterType | undefined; severity: LogSeverity; }; export declare function warning(code: T, data?: MessageParameterType): { code: T; data: MessageParameterType | undefined; severity: LogSeverity; }; export declare function errorMessage(message: string | RegExp): { message: string | RegExp; severity: LogSeverity; }; export declare function warningMessage(message: string | RegExp): { message: string | RegExp; severity: LogSeverity; }; export {};