import { Tag } from '@malloydata/malloy-tag'; import { Field, NestField, RecordField, RecordOrRepeatedRecordField, BasicAtomicField, TimeField, RootField, ArrayField, BooleanField, DateField, JSONField, NumberField, RepeatedRecordField, SQLNativeField, StringField, TimestampField } from '.'; import { RenderPluginInstance } from '../../api/plugin-types'; import * as Malloy from '@malloydata/malloy-interfaces'; export declare abstract class FieldBase { readonly field: Malloy.DimensionInfo; readonly parent: Field | undefined; readonly tag: Tag; readonly path: string[]; protected readonly metadataTag: Tag; readonly valueSet: Set; protected plugins: RenderPluginInstance[]; protected _renderAs: string; private _tagConfig; private _resolvedLabel; private _columnConfig; private _validationErrors; getPlugins(): RenderPluginInstance[]; setPlugins(plugins: RenderPluginInstance[]): void; /** * Get the pre-resolved tag configuration for this field. * Tag configs are extracted at setup time (during setResult) * so components never need to read tags at render time. */ getTagConfig(): T | undefined; /** * Store pre-resolved tag configuration on this field. * Called during registerFields() for built-in renderers. */ setTagConfig(config: unknown): void; /** * Get the resolved display label for this field. * Returns the custom label from # label tag if set, otherwise the field name. * Resolved at setup time so components never read the label tag. */ getLabel(): string; setResolvedLabel(label: string | undefined): void; /** * Get the pre-resolved column configuration for this field. * Column configs are extracted at setup time (width, height, word_break). */ getColumnConfig(): T | undefined; setColumnConfig(config: unknown): void; addValidationError(message: string): void; getValidationErrors(): string[]; renderAs(): string; constructor(field: Malloy.DimensionInfo, parent: Field | undefined, /** * Performance optimization: Skip metadata tag parsing for synthetic fields. * Used when creating internal RecordField instances that don't need metadata. */ skipTagParsing?: boolean); isRoot(): boolean; root(): RootField; /** * Get the effective query timezone for this field. * Walks up the parent chain to find nested timezone metadata from tags, * or falls back to the root query timezone. */ getEffectiveQueryTimezone(): string | undefined; get drillStableExpression(): Malloy.Expression | undefined; get sourceName(): string; get sourceArguments(): Malloy.ParameterValue[] | undefined; get name(): string; fieldAt(path: string[] | string): Field; getParentRecord(levelsUp: number): RecordField; get key(): string; fieldAtPath(path: string[]): Field; registerNullValue(): void; get drillFilters(): string[]; getStableDrillFilter(filter: Tag): Malloy.Filter | undefined; get stableDrillFilters(): Malloy.Filter[] | undefined; get referenceId(): string | undefined; private escapeIdentifier; private identifierCode; drillExpression(): string; wasDimension(): boolean; wasCalculation(): boolean; isHidden(): boolean; get minNumber(): number | undefined; get maxNumber(): number | undefined; get maxString(): string | undefined; asField(): Field; isArray(): this is ArrayField; isRepeatedRecord(): this is RepeatedRecordField; isRecord(): this is RecordField; isNumber(): this is NumberField; isBoolean(): this is BooleanField; isString(): this is StringField; isRecordOrRepeatedRecord(): this is RecordOrRepeatedRecordField; isDate(): this is DateField; isTimestamp(): this is TimestampField; isTime(): this is TimeField; isSQLNative(): this is SQLNativeField; isJSON(): this is JSONField; isBasic(): this is BasicAtomicField; isNest(): this is NestField; getLocationInParent(): any; isLastChild(): any; isFirstChild(): any; pathTo(childField: Field): string; }