import { Tag } from '@malloydata/malloy-tag';
import { BooleanFieldInfo, DateFieldInfo, JSONFieldInfo, NumberFieldInfo, RecordFieldInfo, RepeatedRecordFieldInfo, ArrayFieldInfo, SQLNativeFieldInfo, StringFieldInfo, TimestampFieldInfo, FieldType } from './types';
import { Field } from './fields';
import { FieldBase } from './fields/base';
import type * as Malloy from '@malloydata/malloy-interfaces';
export declare function isArrayFieldInfo(field: Malloy.DimensionInfo): field is ArrayFieldInfo;
export declare function isRepeatedRecordFieldInfo(field: Malloy.DimensionInfo): field is RepeatedRecordFieldInfo;
export declare function isRecordFieldInfo(field: Malloy.DimensionInfo): field is RecordFieldInfo;
export declare function isNumberFieldInfo(field: Malloy.DimensionInfo): field is NumberFieldInfo;
export declare function isDateFieldInfo(field: Malloy.DimensionInfo): field is DateFieldInfo;
export declare function isJSONFieldInfo(field: Malloy.DimensionInfo): field is JSONFieldInfo;
export declare function isStringFieldInfo(field: Malloy.DimensionInfo): field is StringFieldInfo;
export declare function isTimestampFieldInfo(field: Malloy.DimensionInfo): field is TimestampFieldInfo;
export declare function isBooleanFieldInfo(field: Malloy.DimensionInfo): field is BooleanFieldInfo;
export declare function isSQLNativeFieldInfo(field: Malloy.DimensionInfo): field is SQLNativeFieldInfo;
export declare function shouldRenderAs({ field, tagOverride, }: {
    field: FieldBase;
    tagOverride?: Tag;
}): string;
export declare function tagFor(field: Malloy.DimensionInfo, route?: string): Tag;
export declare function extractExpressionFromTag(tag: Tag): Malloy.Expression | undefined;
export declare function extractLiteralFromTag(tag: Tag): Malloy.LiteralValue | undefined;
export declare function getFieldType(field: Field): FieldType;
