import { AnyExpression, Condition } from '../../expressions'; import { Source } from '../../source'; import { Template } from '../../template'; import { MathArg } from '../../types'; export interface JoinConfig { natural?: boolean; type: 'LEFT' | 'LEFT OUTER' | 'RIGHT' | 'RIGHT OUTER' | 'FULL' | 'FULL OUTER' | 'INNER' | 'CROSS'; source: FromConfig; on?: Condition; using?: string[]; } export declare type FromItemConfig = Source | { lateral?: boolean; only?: boolean; source: Source; tablesample?: TablesampleConfig; joins?: JoinConfig[]; }; export declare type FromConfig = FromItemConfig | FromItemConfig[]; export declare type TablesampleConfig = AnyExpression | { method: AnyExpression; repeatable?: MathArg; }; export declare const stringifyFrom: (config: FromConfig) => Template; export declare const stringifyTablesample: (config: TablesampleConfig) => Template; export declare const stringifyJoins: (config: JoinConfig) => Template; export declare const stringifyTable: (config: Source | { only?: boolean; table: Source; }) => Template;