import { default as Compiler } from '../../../compiler';
import { SettingName } from '../../types/keywords';
import { ElementDeclarationNode } from '../../types/nodes';
import { default as Report } from '../../types/report';
import { Column, Table } from '../../types/schemaJson';
import { Filepath } from '../../types/filepath';
import { TableSymbol } from '../../types/symbol/symbols';
import { MetadataFieldRegistry } from '../metadata/utils';
export declare class TableInterpreter {
private declarationNode;
private compiler;
private symbol?;
private filepath;
private table;
private pkColumns;
constructor(compiler: Compiler, declarationNode: ElementDeclarationNode, symbol: TableSymbol, filepath: Filepath);
interpret(): Report
;
private attachTableAndColumnMetadata;
private interpretName;
private interpretAlias;
private interpretSettingList;
private interpretBody;
private interpretSubElements;
private interpretInjection;
private interpretFields;
private interpretColumn;
private interpretIndexes;
private interpretChecks;
}
/**
* Settings that are excluded from custom metadata for inline metadata for Column
* Different from what we extract from metadata block for Column because some settings value types are not supported yet, mostly boolean keys without values ([pk, not null])
* TODO: Catch these settings when we support more data types for custom metadata
*/
export declare const RECOGNIZED_COLUMN_SETTINGS: readonly SettingName[];
export declare const TABLE_METADATA_FIELDS: MetadataFieldRegistry;
export declare const COLUMN_METADATA_FIELDS: MetadataFieldRegistry;