import type { Annotation, FieldDef, RefToField, TypeDesc } from '../../../model/malloy_types'; import type { DynamicSpace } from '../field-space/dynamic-space'; import { DefinitionList } from '../types/definition-list'; import type { FieldName, FieldSpace } from '../types/field-space'; import type { LookupResult } from '../types/lookup-result'; import { ListOf, MalloyElement } from '../types/malloy-element'; import type { Noteable } from '../types/noteable'; import { extendNoteMethod } from '../types/noteable'; import type { MakeEntry } from '../types/space-entry'; export type FieldReferenceConstructor = new (names: FieldName[]) => FieldReference; export declare abstract class FieldReference extends ListOf implements Noteable, MakeEntry { readonly isNoteableObj = true; note?: Annotation; extendNote: typeof extendNoteMethod; constructor(names: FieldName[]); makeEntry(fs: DynamicSpace): void; getName(): string; get refToField(): RefToField; get refString(): string; get path(): string[]; get outputName(): string; get sourceString(): string | undefined; get nameString(): string; abstract typecheck(type: TypeDesc): void; getField(fs: FieldSpace): LookupResult; } export declare class AcceptExceptFieldReference extends FieldReference { elementType: string; typecheck(): void; } export declare class AccessModifierFieldReference extends FieldReference { elementType: string; typecheck(): void; } export declare class ExpressionFieldReference extends FieldReference { elementType: string; typecheck(): void; } export declare class RefineFromFieldReference extends FieldReference { elementType: string; typecheck(): void; } export declare class PartitionByFieldReference extends FieldReference { elementType: string; typecheck(): void; } export declare class GroupedByReference extends FieldReference { elementType: string; typecheck(): void; } export declare class ParameterFieldReference extends FieldReference { elementType: string; typecheck(): void; } export declare class DrillFieldReference extends FieldReference { elementType: string; typecheck(): void; } export declare class CalculateFieldReference extends FieldReference { elementType: string; typecheck(type: TypeDesc): void; } export declare class IndexFieldReference extends FieldReference { elementType: string; typecheck(type: TypeDesc): void; static indexOutputName(path: string[]): string; get outputName(): string; } export declare class AggregateFieldReference extends FieldReference { elementType: string; typecheck(type: TypeDesc): void; } export declare class GroupByFieldReference extends FieldReference { elementType: string; typecheck(type: TypeDesc): void; } export declare class ProjectFieldReference extends FieldReference { elementType: string; typecheck(type: TypeDesc): void; } export declare class DeclareFieldReference extends FieldReference { elementType: string; typecheck(type: TypeDesc): void; } export declare class MeasureFieldReference extends FieldReference { elementType: string; typecheck(type: TypeDesc): void; } export declare class DimensionFieldReference extends FieldReference { elementType: string; typecheck(type: TypeDesc): void; } export declare class ViewOrScalarFieldReference extends FieldReference { elementType: string; typecheck(_type: TypeDesc): void; } export declare class WildcardFieldReference extends MalloyElement implements Noteable { readonly joinPath: FieldReference | undefined; elementType: string; note?: Annotation; readonly isNoteableObj = true; extendNote: typeof extendNoteMethod; except: Set; constructor(joinPath: FieldReference | undefined); getFieldDef(): FieldDef; get refString(): string; } export type FieldReferenceElement = FieldReference | WildcardFieldReference; export declare class FieldReferences extends DefinitionList { elementType: string; constructor(members: FieldReferenceElement[]); }