import type * as Malloy from '@malloydata/malloy-interfaces'; import type { Annotation, ModelDef } from '../model/malloy_types'; import type { MalloyElement } from './ast'; import type { LogMessage } from './parse-log'; import type { DocumentSymbol } from './parse-tree-walkers/document-symbol-walker'; import type { DocumentCompletion } from './parse-tree-walkers/document-completion-walker'; import type { DocumentHelpContext } from './parse-tree-walkers/document-help-context-walker'; import type { PathInfo } from './parse-tree-walkers/find-table-path-walker'; export interface ResponseBase { timingInfo?: Malloy.TimingInfo; } /** * The translation interface is essentially a request/response protocol, and * this is the list of all the "protocol" messages. */ export interface FinalResponse { final: true; } export interface ProblemResponse { problems: LogMessage[]; } export type FatalResponse = FinalResponse & ProblemResponse; export interface NeedSchemaData { tables: Record; } export interface NeedURLData { urls: string[]; } export interface SQLSourceRequest { connection: string; selectStr: string; } export interface NeedCompileSQL { compileSQL: SQLSourceRequest; } interface NeededData extends NeedURLData, NeedSchemaData, NeedCompileSQL { } export type DataRequestResponse = Partial & ResponseBase; export declare function isNeedResponse(dr: DataRequestResponse): dr is NeededData; export type ModelDataRequest = NeedCompileSQL | undefined; interface ASTData extends ResponseBase, ProblemResponse, NeededData, FinalResponse { ast: MalloyElement; } export type ASTResponse = Partial; interface Metadata extends ResponseBase, NeededData, ProblemResponse, FinalResponse { symbols: DocumentSymbol[]; } export type MetadataResponse = Partial; interface ModelAnnotationData extends ResponseBase, NeededData, ProblemResponse, FinalResponse { modelAnnotation: Annotation; } export type ModelAnnotationResponse = Partial; interface Completions extends ResponseBase, NeededData, ProblemResponse, FinalResponse { completions: DocumentCompletion[]; } export type CompletionsResponse = Partial; interface HelpContext extends ResponseBase, NeededData, ProblemResponse, FinalResponse { helpContext: DocumentHelpContext | undefined; } export type HelpContextResponse = Partial; interface TranslatedResponseData extends ResponseBase, NeededData, ProblemResponse, FinalResponse { modelDef: ModelDef; fromSources: string[]; } interface TablePath extends ResponseBase, NeededData, ProblemResponse, FinalResponse { pathInfo: PathInfo[]; } export type TablePathResponse = Partial; export type TranslateResponse = Partial; export {};